It is well known that apps (mobile applications) are getting a huge relevance in modern software. The growth of mobile devices and its accesibility to the personal user market have changed the way the software was understood. No matter the type of software you are working on, in order to be successful, it should have mobile version, and more precisely, a specific app designed and implemented with the mobile device as target.
This output consists on the source code and mobile applications itself. The app lets the user to make different actions depending on the type or role it is. When a company logs into, a menu will be displayed in order to search students. This search can be customized by multiple options: ranking, marks, age, geographical area, college, university, vocational, and so on. Once there, you could get in touch with the chosen student. If an educational institution logs into, it can confirm the pending requests of students, who wants to be part of Talented Europe, as well as add comments or attachments to its profile. When a student logs into, he can propose himself to enter the plattform: several academic requirements will be needed. Notifications are a big part of this. A student will be notified when a company contacts him or when his educational institution accepts him. A company will be notified when a seeked profile enters the plattform. An educational institution will be notified when some of its students claim to get into the plattform. More notifications will be implemented though.
The source code is stored in a GitHub project, the “de facto” standard for software repositories.
These apps have been implemented for the two most extended operative systems in mobile devices: Android and iOS. Although the source code of both applications can share the same design principles, it is clear that the programming language has been different. Android version has been developed using Java and iOS one has been developed using Swift. Good practices in development is a critical topic at this point. There are several documentation about this. A recent GitHub project has focused on good ways to develop a mobile application, both on iOS and Android. https://github.com/futurice/ios-good-practices is a good reference to define the structure of an iOS app: Xcode, CocoaPods, Arquitecture, “Event” Patterns, Networking, Assets, Debugging, Analytics, Deployment. On the other hand, https://github.com/futurice/android-best-practices is available as a guide on Android: Android SDK, Gradle, IDEs, Activities, Fragments, Resources, Test Frameworks, Emulators.
Mobile applications are built having into account that a core part of the plattform has a REST API. Thus, when the app needs data, it makes transparent requests to this API. Therefore the core API is shared between all the application layers. Although the application makes this asynchronous requests, it holds a local database (usually sqlite or nosql) that acts like a cache.
Performance is obviosly a very important issue when developing mobile applications. It must seem fluid and light when the user comes into. A big effort on this topic will be done.
From the user experiencie (UX) point of view, the app will present its diferent options through contextual menus and sliders. It will be designed using actual guidelines, to be more attractiv and user friendly. UX Design Patterns will be used, such as Walkthroughs & Coach Marks, Content-Based Navigation, Sliders, Popovers, Slideouts, Sidebars and Drawers.
Anaylsis, design and testing of the mobile apps will be made by all the partners, although the main role on this output concerns IES Puerto de la Cruz – Telesforo Bravo. Contributions to implementation of the final apps must involved every partner, since translation, marketting and dissemination are implicit to its development.
The functionality of these mobile apps is totally equivalent as the web version, in terms of using. Whatever you can do at web, you could do at mobile device. This ensures that final users will be comfortable when using the mobile app, and satisfied with the provided services.