This blog talks about the next yaaZone project. This time there is not only the aim to solve a problem of a user group but also facing a technical challenge. ITMeetsAPO raises additionally (to a user requirement) the technical question if the software openUI5 mainly intended for writing business applications that are running on the server is also capable to be used for private customer apps. The experiences of the project DSTimeK are the input for this project. What ITMeetsAPO is doing will not be revealed yet but the fundamental questions (as done with the blog: Strategic questions and lessons learned with first app development project) will be answered. Still, the leading and top priority is to find the best solution for a pain point of a user group.
Preview: in the end the app FlAuMoQ was the outcome: app link.
For the project ITMeetsAPO in general the same strategy as with DSTimeK will be applied. Again the services from the app stores should be used. The following points mark major differences to the strategy with DSTimeK:
- The app will be developed platform independent
- Start with two languages German and English and extend with others very late in the software lifecycle
- Late release of the app and include automated testing right from the beginning
- The project won’t be a one-man-show (expert knowledge from the domain pharmacie is needed) which has its challenges in project management and many other levels
To use app stores, in combination with the desired platform independency leaves basically 2 options for reaching this (as from my research, compare with table below):
(1) using a Web Container in the native application and display data that is coming from a server or
(2) using a framework (or library) translating from a platform independent language to the native (e.g. Cordova).
|Use app stores||Requires low
|Using a Web
|Using a translating
- Using a Web Container
Using the Web Container means that your app almost needs a permanent connection to the internet. Almost, because data can also be cached. With all its disadvantages: the app can’t be used everywhere, uses the data volume, might have a low performance and more. Even if the content of the Web Container is independent from the platform, you still have to implement the Web Container itself and the elements around natively. That means you need the respective development environment of the target platform (XCode, Android Studio, …) for creating a development project in which for example in ios an UIWebView is used to display a Web page. The possibilities of exchanging information between the mobile device -> Web Container -> rendered Web page logic is limited. Also, the Web page needs to be made secure. This can be achieved by authentication mechanisms that only allows the Web Container in the app to display and use the data coming from the Web page on the server. Otherwise everybody just can use the Web Page in a browser without downloading the app.
- Using a translating framework
There are different frameworks available that allow writing an app in a non-native language and generate or map during runtime to the needed software artefacts (e.g. *.apk files in case of android). There as well a “native” development environment is needed. The non-native software artefacts are used in e.g. the Android Studio, enriched with platform specific components. Also, for testing in the emulator and bringing the built software artefacts onto the device the native development environment is needed. The advantage in using this technique is that the app doesn’t need a permanent internet connection. Furthermore and in contrast to the Web Container device specific functions can be called – depending on the capabilities of the framework.
For ITMeetsAPO a translating framework will be used. The choice which translating framework is used is not only depending on the framework itself but also on the possibilites of the used (platform independent) programming language and available libraries on top. The decision is mainly depending on the desired functionality of the app that should be built. ITMeetsAPO, to give some examples, requires master details navigation, list and complex filtering logic, graphics, sending of emails and decision controls. It is intended rather for a private user group. Based on these requirements the decision was made to use these components:
- openUI5 is used to build enterprise-ready web applications. openUI5 is the open source variant of SAPUI5 – the new software framework of SAP for developing their UIs.
Since openUI5 in general is intended for business applications but from its controls is perfect for ITMeetsAPO, it will be used, but at the same time it is tried to make it look and feel as an app for non-business users.
- Cordova Apache – an apache translating framework. Main driver for this decision was the paper Evaluating Frameworks for Creating Mobile Web Apps, a presentation iPhone Apps with HTML5 on slide 25 telling what is possible with cordova on which device, and an article Phonegap + OpenUI5 = App published on Play store which proofed that the combinations of techniques can be successful. Cordova should only be used for packaging, to build the app specific artefacts in order to avoid a too strong dependency to the framework. Motivation for this strategy has been this article Library patterns: Why frameworks are evil.
Private apps vs business apps
Producing a non-business app means to deal with different requirements than an app used in private context. Therefore software supporting business scenarios have a slightly different focus and prerequisites. To give some examples:
- Internet Connection – with a private smart phone people tend to care more about the data volume -> this creates the need to run the app autonomously on the device hardly asking for internet connection – at least then you don’t loose customers caring for download volume
- Showing adverts to generate revenue is very common for private apps, but for business apps a no go
- Business apps tend to look very conservative, private apps are more colorful…
- The used (and offered) controls and UI elements in business software are rather functional and reflect the need for structured information, e.g. lists, pie charts, search possibilities, having standard buttons…
- The prices for business apps could be higher, and or allow a different pricing model
- Business apps that are used from employees might also go through a security check from the company checking that the permissions the app requires e.g. doesn’t allow access sensitive information like the address book. But also private users might react suspicious.
There are only a few apps out there that use this combination of openUI5 and cordova and again less apps that are used in private context reaching a certain level of complexity and are published on different platforms. There is for example one application published in the playstore app IconExplorer, but not available on other platforms.
Aims of ITMeetsAPO (summed up)
- Solve a problem for a private user group in the best way possible
- Technical aim with lower priority
- Show that openUI5 can also be used for apps in private context. The resulting app will then showcase the different facets of requirements towards private apps.
- Show that openUI5 apps are running on multiple devices with different operating systems.
By having defined this, the target groups of ITMeetsAPO app are the following:
- Private users that have the pain point solved with ITMeetsAPO
- Producer, stakeholder and customers of
- Different platforms: ios, android, windows, …
- App developers, architects, designers…in general all people that think about producing an app
The app ITMeetsAPO will soon be published. After that another blog might follow, talking about experiences during the implementation of the project ITMeetsAPO.