Android App Fundamentals
Whilst Android apps can be coded in either Java, Kotlin or C++ programming languages, our Android app development team currently code our bespoke Android apps using the tried and tested Java language (Kotlin is a very new programming language so we'll let it play out for a while adopting it for future Android apps).
Our experienced Android app development team uses the Android Studio IDE (integrated development environment) to code our tailor-made Android apps. The code we write is compiled using the Android SDK (Software Development Kit) into an Android package which is a file with the .apk suffix. It is this one .apk file which Android devices use to install the app.
Each Android app is made up of a number of "App Components" which fall broadly into four categories: Activities, Services, Broadcast Receivers and Content providers. The cost of a bespoke Android app we develop for you will depend on the number of developer hours needed to code and test all these components.
Please see below a quick summary:
An Android app ‘activity’ is basically a screen with a user interface; each different screen on the custom Android app we develop for you will usually be made up of a separate activity. We can set which activity should open first when you open your bespoke Android app (e.g. the home screen) but we can also use broadcast receivers to automatically open any particular activity based on certain triggers (e.g. open the jobs list screen when the device receives a push notification).
An Android app ‘service’ does not have a user interface but runs in the background to perform long-running, resource-intensive tasks (e.g. syncing data with your cloud servers). We can start these services (or interact with them) by calling them from our activity or from a broadcast receiver. When we develop our cutting-edge, bespoke Android apps to target devices running Android Lollipop or above (so basically any devices released after 2014) we will use the JobScheduler class to schedule tasks as this works with the Doze API to save battery power.
What is JobScheduler? The Android JobScheduler is an API for scheduling jobs that will be executed within our bespoke Android app’s own process. The beauty of the Android JobScheduler is that it is clever about how and when it executes the jobs in that it will batch them together and delay them if necessary. However, when the job is actually running the Android operating system will make sure our custom Android app stays awake for the duration of the job by applying a wakelock to the app and device.
What is the Doze API? The Android Doze API helps extend battery life by managing how apps behave when the smartphone or tablet is not connected to a power supply; it does this by deferring background CPU and network activity (e.g. syncing data with the cloud) when the device is unused for long periods of time. It is important that we test the bespoke Android apps we develop for you app in both Doze and App Standby modes to make sure all necessary background tasks are performed as required for your business-critical Android apps.
An Android app ‘broadcast receiver’ is a component that doesn’t display a user interface but that allows the Android operating system to deliver instructions to the bespoke Android app we have developed for you. For example, the system can deliver broadcasts, e.g. an alarm notification, to apps which are not currently running, without any user interaction. Although not really necessary, we sometimes create a status bar notification to alert users when a broadcast event occurs.
An Android app ‘content provider’ manages your app’s data and we can code your custom-build Android app to allow other defined apps to query or modify certain data via a standard interface that connects data in one process with code running in another process. Basically, content providers help the bespoke Android apps we develop manage access to the data stored in the app itself or indeed to data stored by other apps whilst providing mechanisms for us to define data security.
Before the Android operating system can start any app components (e.g. Activities, Services or Broadcast Receivers), the Android operating system has to know that the component actually exists and it does so by reading the app's manifest file, AndroidManifest.xml. Our Android app development team declare all the components of your bespoke Android app in this file. As well as declaring the app's components we also need to do the following:
- List user permissions required by the app (e.g. Internet access or access to the user's contacts).
- Declare hardware and software required by the app (e.g. camera, NFC or Bluetooth).
Android 'app resources' are all the additional files and content (e.g. screen layouts, text strings, font styles and images) that the Java code in our main app activities can use. It is best practice for Android app developers to keep such app resources separate from the main coded app components and also to make sure we have a version for each specific device configuration (e.g. we may have different sized images and screen layouts for tablets and smartphones and we may show different text strings based on language settings). The Android operating system detects the user’s device configuration and loads the appropriate resources for the bespoke Android app we have developed for you.