Introducction#
Nowadays mobiles are not only telephones, they are the most useful and used tool. The mobile development evolution is consequently very fast and the market is very changeable.
Glossary#
Acronyms#
- App: Application.
- GPS: Global Positioning System.
- OS: Operating System.
- SMS: Short Message/Messaging Service.
- STK: SIM Application Toolkit.
- USSD: Unstructured Supplementary Service Data.
Mobile Apps#
One of the most important decisions when developing a mobile app is to decide whether it will be native or web app. Each of these options has its pros and cons.
Native apps#
Native apps run directly on the mobile.
Pros and cons#
Pros: Efficiency.
- Maximum software and hardware utilization: GPS, accelerometers, touchscreen, etc.
- More efficient apps.
-
Allows privacy, as there is no need to send data over the network.. Cons: Expensive development.
-
A different executable for each OS and hardware platform.
- Usually a different app for each OS.
- Need to be uploading new versions to the app store.
Recommended usage#
Native apps are suitable for:
- Apps that need to interact with the device’s hardware, memory or OS.
- Apps running locally without network access.
- Apps that need privacy.
Some native apps examples: camera, file manager, gallery, calculator, blog of notes, etc.
Web apps#
Web apps run on a server, providing service throught a browser.
Pros and cons#
Pros: Simple development.
- Only one app needs to be developed.
- Maintainability. Updated directly on the server, not for each mobile.
Cons: Low efficiency.
- Unable to make proper use of the device’s hardware and software.
- Is highly dependent on network technology.
- Usually slower responses.
Recommended usage#
Web apps are suitable for:
- Apps with a small budget.
- Service based Apps (no need of device access).
- Apps with centralised database access requirements.
- Apps whose content is constantly updated.
Some web apps examples: Streaming (as YouTube), news (as NBC News), repositories (as GitHub), online services (as ILovePDF), etc.
Hybrid apps#
Many apps require some features from native apps and some from web apps. So why not make a hybrid app?
Hybrid apps seek to benefit from the best features of both paradigms. So they develop part of the app in a native way and another part in a web way, integrating both parts in a single app.
Recommended usage#
whenever native and web features are necessary.
Some hybrid examples:
- Social network / chat / mail / cloud storage apps: Usually needs access to DB (web feature) but also access to hardware and memory—i.e. camera, gallery or file manager—(native feature). As Twitter, Whatsapp, Gmail or Drive, respectively.
- Localization / Maps apps: Usually needs acces to the map (web feature), but also so the GPS location (native feature). As Google Maps or Uber.
Message-based apps#
The not-so-well-known message-based apps, become important in regions with little network technology.
The message-based apps are supported by messaging APIs like SMS, USSD or STK. See glossary.
Mobile OS#
Nowadays the main two OS are Android (open-source) an iOS, but it has not always been like this.
There have been many other OS for mobiles throughout history:
- Windows Phone (Microsoft)
- Blackberry 10 (Blackberry)
- AliOS (Alibaba)
- Symbian (Nokia)
- Bada (Samsung)
- Firefox OS (Mozilla)
- Mer (Sailfish)
- Ubuntu Touch (Ubuntu)
- Tizen (Samsung)
All of them have passed into history except for Tizen (used for werables).
Topics about mobile development#
- Architecture and OS of mobiles.
- Software and technologies for mobile apps development.
- Mobile apps development for Android.