There are two types of app developments, which are hybrid and native.
Hybrid apps
A hybrid app is an app developed in a framework based on Javascript / Typescript, such as Angular or others ... Therefore it uses html, css, etc., as a web development. But it also uses an interface, such as Phonegap, which enables the publication of the app in the stores, and gives it a "native" access to all the hardware elements of the phone: camera, address book, accelerometer, etc...
Advantages of hybrid apps:
- More cheap developments, because they are like web projects.
- They allow greater customization of the design than the native ones.
- Like web developments, they are also easier to modify and maintain.
- The same project development is valid for all platforms (iOS, Android, etc.).
Disadvantages of hybrid apps:
- The application is somewhat slower in general than a native app, but mobile devices are more powerful every year, so the difference in performance is getting smaller.
- Communication with certain mobile hardware is not as fast as in native apps.
- Due to the two previous points, there are many types of development that are impossible to do with a hybrid app (action games, developments that are very complex, etc.)
Native apps
These are apps developed with the native environment corresponding to each platform (xCode on iOS, Android Studio on Android, etc.). These are apps that take full advantage of the capacity and speed of the mobile device.
Advantages of native apps:
- They take full advantage of the speed and hardware of the mobile device, and have no limitations, so you can do any type of app.
Disadvantages of native apps:
- They are expensive projects (it's like developing a program, while apps is like making a website), and you also have to do a different development for each platform (iOS, Android, etc ...), so that the cost is doubled.
- Being native developments, they are more exposed to code failures, lack of memory, and incompatibilities between different versions of the operating system.
The API Rest
When we are developing an app, we must not forget that in addition to the app itself, we must develop communication scripts between the app and the database (webservices, API Rest), and even if we do not have one, you must also develop an admin panel to manage the data that the app will use.
All these can be replaced by third-party services such as Firebase, although most are paid.
Push notifications
This feature is the most demanded and also the most typical in mobile apps. Firebase is implemented in a very simple way, and if something more professional is required, One Signal can be used, which provides an excellent management environment for testing, campaigns, etc ...
To see my rates on this type of project, go to the rates page.