The only constant is change!
The Android operating system, and Android app development in general, is evolving so quickly that sometimes it is hard to keep pace with developments. However, here at App Developers for Android we try to keep ahead of the curve by continuously learning about advances in the Android operating system by following the resources shown below.
Android Developers YouTube Channel
This is where Google's Android team place videos containing demos, tutorials, and anything else related to Android development. This is an invaluable source of up-to-the-minute knowledge for Android app developers.
Google Developers Blog
Google's latest news and updates for Android app developers.
Build Out is where Google engineers present competing architectures to demonstrate how Google's developer products (e.g. Google Cloud, Android, Firebase, and Tensorflow) can be integrated into cutting-edge Android apps.
Google I/O is an annual developer festival held at Mountain View, California. Here you can see presentations, demonstrations and codelabs for the latest Android developments.
Google Developers Codelabs
Here you can see videos from Google's Android engineering team that guide developers through new cutting-edge features for Android apps.
Android Architecture Components
A collection of libraries that help us design robust, testable, and maintainable Android apps. A library in this context is a collection of tested precompiled routines that our Android apps can use to perform complex tasks quickly.
Android API Package Index
These are the Android API packages. A package is a namespace that organises a set of related classes and interfaces (think of packages as different folders on your PC). This is essential knowledge for Android app developers.
Android API Class Index
Each of the Android API packages mentioned above contains classes which are the building blocks of an object-oriented language such as Java. The class is a template that describes the data and behaviour associated with instances of that class.
We make sure we check the above resources regularly so we stay at the top of our game when it comes to cutting-edge Android app development for business!
What our customers say about us on Google Reviews (view all)
Keep using without an Internet connection!
We code all our Enterprise Android apps so any data which needs to be pulled from the cloud or data, photos, signatures which need to be pushed to the cloud (e.g. for real-time management reporting) is synced whenever there is an available Internet connection. This means your staff will be able to use the Android app we develop for you even when they are in an Internet connection black spot. Any operations or reporting they do on the app can be safely carried out and then this will sync with the web-based cloud systems (which we can develop for you) as soon as a connection is established.
How do we transfer data from the Android app to your cloud systems?
How we build our Android apps
We develop our Android apps in the Java programming language (the latest version is Java 9, released by Oracle in September 2017). In the early days of Android app development (back in 2009 for us) we used the Eclipse IDE with the ADT plugin (IDE stands for Integrated Development Environment which usually comprises a source code editor together with build and debugging tools; ADT stands for Android Development Tools and this plugin developed by the Android team at Google provided an integrated environment for the development of Android apps). In June 2015 Google announced that they would soon stop supporting ADT and any security bugs would not be fixed. Android app developers were therefore told they should migrate their apps to the new version of Android Studio which would become Android's official IDE. We of course followed this advice (we take security very seriously) and now all our Android apps are developed using Android's official IDE, Android Studio.
How does this help you, the client?
Well, Android Studio has a number of great features which help speed up the coding and testing of Android apps. The less time we spend coding and testing our bespoke apps, the cheaper the development costs for you.
A great feature of Android Studio is called “Instant Run” which allows us to see coding changes in real time on a running app. We can connect any of our Android devices to the development computer via a USB cable and as we change the Android app’s source code in Android Studio we see those changes instantly on the app running on the phone/tablet without having to restart the app or rebuild the APK. This makes our lives as Android developers so much easier compared to the lengthy process we used to have to follow when developing Android apps in Eclipse.
The code editor in Android Studio is excellent and helps us work faster (and write more accurate code) because it offers code completion (i.e. start typing and if offers suggestions), refactoring (i.e. restructuring existing Java code without changing app behaviour) and also code analysis.
Super-Fast Android Emulator
An emulator in Android app development is a screen on your computer which simulates various Android phone, tablet, Android Wear, and Android TV devices. When using the Eclipse IDE, trying to test Android apps on the device emulator was painfully slow and kept crashing. The Android device emulator which comes with Android Studio is a great tool as it comes with configurations for popular devices and can transfer data faster than a real device connected via USB. The Android Emulator also allows us to simulate features such as GPS location, network latency, motion sensors, and multi-touch input. Together with the real Android devices we test our apps on, the emulator allows us to test the Android apps we develop on any number of device configurations so we are sure they will work as intended on the many Android devices out there in the wild!
Software testing is one of the most important steps in the development of any bespoke Android app. The versatility of your app requires an exhaustive testing strategy. Users will interact with your app in many ways and we need to test all likely user journeys on the app to identify bugs (or indeed usability issues). Android Studio makes robust testing relatively simple by allowing us to set up JUnit tests that run on the local JVM or instrumented tests that run on a device. JUnit is a unit testing framework for the Java programming language and JVM is the Java Virtual Machine.
Android Runtime (ART) is the new runtime environment of the Android operating system. Prior to Android 4.4 (KitKat) it was the Dalvik virtual machine. ART performs the translation of an Android app's byte-code into instructions that are executed by the device's runtime environment. As opposed to Dalvik, ART compiles entire applications into native machine code on installation thereby improving efficiency & power consumption (battery drain being a massive problem with Android apps, especially those that need to sync data with cloud-based data silos like the majority of the bespoke Android apps that we develop).
JUnit 5 is the next generation of JUnit which aims to provide a solid foundation for developer testing on the JVM, focusing on Java 8 and above (which is the programming language used by our developers). Basically, as we develop a new feature we write a corresponding unit test and unit tests should try to cover all possible interactions with the unit.
If testing doesn't pick up a bug?
Don't worry! We've got it covered! We build bug and error monitoring into all the Android apps we develop so we know instantly if there is a problem!
We integrate ACRA (a leading open-source bug/crash reporting library) into all the Android apps we develop. This means we get instant notification if any of our apps crash or throw any type of error. This allows us to deal proactively with any issues which were not identified during our extensive pre-release testing.