At Google I/O 2017, Google introduced new architecture components for Android. It is a new library which will help developers to maintain their activities or fragments lifecycle very easily.
This new library by Google provides some relief to the Android Developers by providing a complete solution to problems like memory leaks, data persistence during configuration changes and also helps in reducing some boilerplate code.
There are 4 Android Architecture Components :
Lifecycle
LiveData
ViewModel
Room
Lifecycle
Lifecycle class helps us in building lifecycle aware components. It is a class which holds all the information about the states of an activity or a fragment. It allows other objects to observe lifecycle states like a resume, pause etc.
There are 2 main methods in the Lifecycle class:
addObserver() – Using this method, we can add a new instance of a “LifecyleObserver” class which will be notified whenever our “LifecycleOwner” changes state. For example: if an activity or a fragment is in RESUMED state then our “LifecycleObserver” will receive the ON_RESUME event.
removeObserver() – This method is used for removing active “LifecycleObserver” from the observer’s list.
LifecycleObserver
With the help of this interface, we can create our Observer class which will observe the states of an activity or a fragment. We need to simply implement this “LifecycleObserver” interface.
LifecycleOwner
It is an interface with a single method called “getLifecycle()”. This method must be implemented by all the classes which are implementing this interface. This interface denotes that this component (an activity or a fragment) has a lifecycle.
Any class whose states we want to listen must implement the “LifecycleRegistryOwner” interface. And any class who wants to listen must implement the “LifecycleObserver” interface.
There are several events which we can listen with the help of the “LifecycleObserver” interface:
ON_CREATE – Will be called after onCreate() method of the “LifecycleOwner”.
ON_START – Will be called after onStart() method of the “LifecycleOwner”.
ON_RESUME -Will be called after onResume() method of the “LifecycleOwner”.
ON_PAUSE – Will be triggered upon the “LifecycleOwner” being paused (beforeonPause() method).
ON_STOP – Will be triggered upon the “LifecycleOwner” being stopped (beforeonStop() method).
ON_DESTROY – Will be triggered by the “LifecycleOwner” being destroyed (beforeonDestroy() method).
All these events are enough for managing the lifecycle of our views. With the help of these “LifecycleObserver” and “LifecycleOwner” classes, there is no need to write methods like onResume(), onPause() etc in our activities or fragments. We can handle these methods in our observer class.
We can also get the current state of the “Lifecycle Owner” with the help of getCurrentState() method.
LiveData
LiveData is a data holder class. It provides us the ability to hold a value and we can observe this value across lifecycle changes.
Yeah, you heard that right!
LiveData handles the lifecycle of app components automatically. We only need to observe this LiveData class in our components. That’s it and we are done.
There are some important methods of LiveData:-
onActive() – Called when there is an active observer. An observer is called active observer when its lifecycle state is eitherSTARTEDorRESUMED and the number of active observers changes from 0 to 1.
onInactive() – Called when there are no active observers. An observer is called inactive observer when its lifecycle state is neither STARTED nor RESUMED (like an activity in the back stack) and the number of active observers changes from 1 to 0.
setValue() – Used to dispatch the results to the active observers. This method must be called from the main thread.
In above method observe() we pass the Lifecycle Owner as an argument, this argument denotes that LocationHelperLiveData class should be bound to the Lifecycle of the MyActivity class. This bounding relationship of helper class with our Activity denotes that:-
Even if the value changes, the observer will not be called if the Lifecycle is not in an active state (STARTED or RESUMED).
The observer will be removed automatically if the Lifecycle is destroyed.
Whenever MyActivity is in either PAUSE or STOP state it will not receive location data. It will start receiving Location Data again once MyActivity is in either RESUME or START state.
There can be multiple Activities or Fragments which can observe LocationHelperLiveData instance and our LiveData class will manage their Lifecycle automatically.
There is no need to remove observer in onDestroy() method, it will be removed automatically once LifecycleOwner is destroyed.
Talk about innovation and you’ll see Google at its forefront. This time Google is working to replace its existing operating system called Android. Google is working on its next OS after Android and Chrome which is called Fuchsia. Fuchsia is an open-source, real-time operating system. Earlier the OS was introduced only with commands but now they have created a new crazy UI called Armadillo.
Fuchsia is not a Linux based OS like Android and Chrome. Android is primarily designed for smartphones and touchscreen phones. Fuchsia has focused on voice control and AI. It is designed to better accommodate voice interactions across devices. It has extremely fast processors and uses non-trivial amounts of RAM.
There are mainly two reasons why Google is working on a new operating system-
Unlike Android and Chrome OS, Fuchsia is not based on Linux—it uses a new, Google-developed microkernel called “Zircon.” With Fuchsia, Google would not only be dumping the Linux kernel, but also the GPL: the OS is licensed under a mix of BSD 3 clause, MIT, and Apache 2.0
People love to write cross-platform frameworks for two reasons: First, they want to run their apps to run on both platforms without doubling the effort. And second, because Android programming is still so painful even after the Kotlin.
About Fuchsia
Fuchsia is based on newly developed microkernel called Zircon. The microkernel is basically a stripped down version of a traditional kernel (the core of an operating system that controls a computer’s underlying hardware).
Fuchsia, is partially written in Dart which is an open source programming language developed by Google itself. Dart compiles to JavaScript.
The fuchsia interface is written in Flutter SDK which is cross-platform and is also developed by Google.
Fuchsia has a new UI called Armadillo that has a different home screen containing a home button, a keyboard, and a window manager. It supports vertical scroll system where the user can adjust other icons like battery, profile picture, weather report and so on accordingly.
A user can also adjust the apps which are shown in the cards on the basis of how frequently or recently he/she is using the app.
Armadillo can run on iOS and Android platform or any other platform that flutter supports easily.
Google hasn’t made any public, official comments on why Fuchsia exists or what it is for but as per their documentation it will overcome all the shortcomings of the previous operating systems and will provide the high performance which is not possible to implement in the existing operating system (Android).
The Fuchsia interface is written in Flutter SDK which generates cross-platform code that runs on Android and iOS.
Armadillo- The Fuchsia System Interface
Earlier, Fuchsia was based on commands but later its interface is designed in the language called Armadillo by Google which is pretty interesting now.
According to the picture of its UI- here is the description of how things will work in case of Fuchsia.
The center profile picture is a clickable area that will open the menu which is similar to Android Quick Settings. Battery and connectivity icon will be shown on the top bar. There is also a horizontal slider for brightness and volume and also icons for do not disturb, auto rotate and airplane mode.
The bottom ‘Google Now’ panel will bring up a keyboard which is not the Android keyboard but instead it’s a custom Fuchsia keyboard which has the dark new theme. Fuchsia keyboard functions are different from Android keyboard.
Summary
So Fuchsia is a brand new Google project which may be the answer to “How we will start writing Android again if we need to end the era of earlier stable OS”.
The biggest challenge to bring the brand new OS might not be developing the new OS but the risk in the transition idea from the world’s most popular Android Operating system to the new one. We can not say anything about the future of the Fuchsia. It can be successfully launched to the consumers by 2020 as quoted by some source or can be entirely trashed by Google before it sees the light of the day.
As the mobile world is getting overflowed with new devices and mobile apps, the users’ demand for more innovative features is touching the sky. It has become imperative for all mobile companies to introduce a WOW factor to their operating system for gaining the limelight in the market. In this constant race of engaging their target audience with convenience and innovations, many times Google and Apple have been found to get inspired by each others’ ideas and features. They, in different instances, have shown that they pick the best features of each other and introduce them in their devices. Remember when Tim Cook said he relies on Google Search? This give and take of inspiration is something that is still in practice in the year 2019. While, we have heard a lot about the features Apple copied from Google’s Android, today we will be looking at the other side of the coin. Meaning, the features that Google has cloned from Apple’s iOS in 2019 and earlier. Features that have traditionally played a role in defining the Android mobile app development cost.
Android Features that Have Been Inspired from Apple
1. Fast Sharing Feature
Google is introducing a ‘Fast Share’ feature on Android devices that will work similar to AirDrop in Apple. This feature will combine WiFi and Bluetooth functionalities together to send files, URLs, and text snippets to people nearby.
However, there will be a difference. Unlike AirDrop, the transfer functionality will not be confined to your contact list and device. You will be able to share files with anyone using Chromebooks, iOS smartphones and who wear AndroidOS smartwatches.
2. Battery Saving Features
Google has announced that Battery Saver will be one of the significant Android Q features that will hit the market in 2019. This feature will turn off the battery saver mode automatically when the battery is charged up to 90%. Likewise, it will turn the Battery saver mode ‘on’ again when the charger is unplugged.
It is again a feature that is much like the ‘Low Power Mode’ of iOS, where the battery saving option is turned off automatically when the iPhone is charged to up to 80%.
3. Facial Recognition
The feature of unlocking devices and apps using facial recognition or better say Face ID is again a feature that Apple brought into the market. They first introduced the idea of scanning faces for authentication purposes, which is now considered as the main element for Android devices.
In fact, as per the sources, Android Q is coming up with an advanced level of facial recognition features that will give heads on challenges to Apple’s Face ID feature.
4. Native AR
Google has proven to be the best in the market to try different AR-based features on smartphones and other devices. They have brought various new opportunities in the market with respect to AR technology. A recent proof of this is that Google, as per the sources, is introducing AR effects into their messaging app to make it competitive to Apple’s iMessaging app.
However, it was Apple IOS who took the first step in the direction of integrating Augmented Reality in the mobile world and give us the best of both the real and virtual worlds.
5. DND (Do Not Disturb)
Again, Apple introduced the idea of making the process of DND (Do not Disturb) accessible and visible to users. They took the first step of giving users an opportunity to customize the DND activities and manage them. Google just followed the footsteps of Apple to give this freedom to Android users and give them a peace of mind during meetings and in other such situations.
6. Gesture Controls
The gesture control facility that we are enjoying on Android devices is also one of the features copied from Apple devices. It was Apple who ditched the home screen button and introduced the idea of using gestures for operating devices. And now, Google has brought this feature into the Android market.
7. Emojis
Not just the technical features, Apple has also proven to be the first in the market for making app experience enjoyable. They have introduced a series of realistic emojis right from the beginning. And Google is known to be trying to bring improvements in their emojis every year to make it aligned to Apple’s emojis.
8. App Store Features
Asking users for a one-time and all-or-nothing request before installing any application is an old Apple approach. And now, Google has also introduced Apple’s features of apps asking for users’ permission for the first time for accessing the camera, or other such features.
9. Performance Improvements
Google again turned towards Apple for learning how to deliver higher performance and user experience to their target audience.
Just like Apple, Google has also started showing no support for older devices to cut down the efforts of Android app developers to make their app features available for all the devices. And this way, the tech giant has come up with a solution to fight against the challenge of platform fragmentation, while ensuring that the performance is not compromised.
Bonus: Ecosystem
It was Apple that introduced the idea of making an ecosystem where all the Apple products function in sync with each other. They initiated the concept of building a synergy between products and brand services to ensure users never leave the ecosystem and the ROI numbers remain intact.
Google has recently embraced this concept of connecting all of their services to encourage users to leverage their services and thus, add to their profits directly or indirectly.
So, these were some of the significant features that came to Apple’s iOS first before they were applied in the Android market, making both the platforms appear similar to some extent.
Back in 2008, the iOS App Store was launched with 500 apps. Today that number has skyrocketed to 1.85 million apps that are available for users to download. Android users have a bigger app universe to browse from that consists of over 2.56 million apps available in the Google Play Store. It is safe to say that we are living in the digital era!To prove we are in the digital era, let’s recall the numbers.
Did you know that the number of smartphone users worldwide surpasses 3.5 billion? As per the Statista- Smartphone User forecast, it is estimated to further grow by several hundred million in the next few years.
There are 7.94 billion devices connected worldwide and this number is more than the number of people in the globe! Hence, there is no denying the fact that mobile applications are an integral part of our daily lives.
Keeping the above data in mind, many entrepreneurs are planning to start a mobile app centred business.
If you are amongst those businessmen who are looking forward to creating a mobile app, then the first question to address is – which is better among Android vs iOS development?
In this article you will walk through certain factors that will influence your choice, and embibe you with the iOS and Android App Development Platform.
Let’s get right to it.
Apple vs Android: Market Share
According to Statista, in 2020 the market share of Android and iOS was 86.6% and 13.4% respectively and these numbers are expected to reach 87.1% for Android and 12.9% for iOS in 2023.
Looking into the above graph, you can conclude that Android is a clear winner in the mobile operating system market share worldwide and is expected to remain so in the years to come. It is so because the Android startup apps are the most adopted ones for almost every smartphone vendor other than Apple.
Also, Android is an open source platform that allows and makes it easy for mobile phone manufacturers to add their own look to the operating system.
Apple vs Android: App Downloads
According to Statista Market Forecast 2016–2021, there will be 196 billion annual downloads from Google Play store by 2021, all thanks to growing smartphone and app adoption worldwide.
While from the iOS store there will be 42 billion downloads. Android again wins when it comes to app downloads worldwide and it is expected to enormously grow in the years to come.
After reading all the above facts and data it is highly advisable for you to make yourself familiar with the process of startup app development.
We have curated a complete guide on apps for startups, with A to Z information about the process of getting your idea live on a mobile application. In this article, we will answer all the questions that every entrepreneur who is new to the app industry might have.
Which Is Better – iOS Or Android?
Android vs iOS development is a never ending debate between software developers. The quest to- Which platform should startups choose has no one word answer. There are solutions that depend on various factors that an entrepreneur should consider before making a decision.
Let’s go through all the factors one by one:
1. Demographics
There is no denying the fact that Android smartphones have a larger demographic than apple users.
Also, there is no denying the fact that Apple is considered a high end device in which users are willing to purchase apps. So, Apple users are generally found in prosperous parts of the world.
For example: The USA is considered among the highest revenue making countries, thus you will find a larger number of iOS users there.
As per the reports by Statista, currently there are more than 113 million iPhone users in the United States, accounting for about 47 percent of all smartphone users in the United States. So if you are targeting the western demographic, I suggest you to hire iphone app developers.
2. Fragmentation
In simple words, fragmentation refers to when users are running different versions of a mobile operating system and using different mobile hardware models or mobile devices.
We are aware that iOS devices and their release cycles are controlled by Apple alone. As a result, once a year Apple synchronizes iOS version releases with device releases. Hence, fragmentation issues are less.
However, when we talk about Android, fragmentation issues occur constantly, further making life of the android application developers difficult at the time of testing and quality control. Thus, Android fragmentation increases development cost and maintenance time.
3. Design and development
In terms of designing, Google Material Design has a greater influence on UI and UX. Mobile app developers feel that when it is about coding mobile apps then Swift is a much easier language to start as compared to Java.
However, design and development is one factor that depends less on the platform and more on the skills of your partnered mobile app development company. When you are linked with a brand that has it specialization in the development of both Apple and Android apps, it is of the least matter about which platform requires less developmental efforts as both are done within equal efforts.
Now that we are aware of the factors involved, let us discuss the reasons to go for android startup apps and iphone startup apps separately.
Why Choose Android Startup Apps?
You should go with Android first if your audience is not concentrated on any one specific demographic or target audience. Also, if there are a good number of customization elements in your mobile app, go with Android.
Below are the advantages of using Android.
1. Greater user base
Majority of users globally use Android devices as compared to other devices, which gives you a large pool of potential users.Not having an android app for business means losing limitless opportunities and audience for your product or services.
2. Open source platform
Android is an open-source platform which means Google doesn’t charge any fee for using this platform. Wherein, Google also provides Android app development tools and technology for free to the developers. Thus Android app cost is comparatively lesser than iOS app cost.
So, it is a cost effective solution for your startup budget.
Hardware device manufacturers such as Samsung, Oppo, Xiaomi, etc., all use Android as their default OS.
3. Customizable apps
Android app development allows the app developers to customize the applications as per the business requirement. This means your business app development will get done with the right requirements and required flexibility which might not have been possible with any other platform. It is always a good idea to hire an android app development company that can help you with your startup app.
4. High ROI
The moment you publish your app on the store, you get a big pool of potential users that you can tap into. Since you have such a wide market to target, the return of investment on your android app would be instant and always on a higher end considering your Android app development cost.
5. Compatibility
One of the biggest advantages of choosing an android app over iOS is that there’s no restriction on devices that is to be used for building an android app. You can build an app on any device, be it Windows desktop, Mac, or the Linux system.
The fact that makes Android a go-to platform for all the sectors with interoperability needs is that it allows you to expand your brand across devices and systems .
We now understand the advantages of choosing android apps. Let’s dig deep and see what are the reasons to go for iOS app development for your startup.
Reasons To Choose iPhone Apps
You should place your startup’s first mobile app on iOS by investing in a sound reputed iOS app development company if you wish to come in the sight of the app store’s target demographics.
Let us discuss the advantages of choosing iOS apps for startups:
Security is the utmost requirement for any business because sensitive enterprise data is lodged in apps. Android apps are a big risk when it comes to security while iPhone users are cushioned against hacking and malware. When you compare the iPhone vs Android on the basis of security, iPhone apps protect firmware and software through stringent security measures such as :
Integrated data handling systems
Measures to prevent duplication of data
Measures for loss of security by data encryption
2. Revenue
The ones that have a greater ROI than Android apps are the iPhone apps.. The best revenue generation opportunities that you can get from your iOS application development process, is to keep an eye on the mistakes, tips and tricks, and other related information would be a big advantage. You can look for iOS app development services that can help you with your vision.
3. Established customer base
The biggest USP of Apple is its established customer base. Apple is a pioneer in technology and applications. Apple has a well-established niche of its customer base that swear by Apple’s quality and performance and are loyal to the brand. That’s why it is said that once a smartphone user experiences the iOS platform, they will never be satisfied by any other OS and will stick to Apple.
4. Low fragmentation and testing
As discussed earlier, Apple generally develops just one updation on its existing OS every year. Also, the number of Apple devices are lesser than Android-based ones. Thus, Android apps should be tested comprehensively to get its better functioning on all the versions of Android OS.
On the other hand, iPhone apps just have to meet testing criteria of its previous iOS versions. This constantly reduces testing time and guarantees a rapid time to market for its apps. This also results in saving apple app development cost.
Wrapping Up
After reading the write up you must have understood that there is no right or wrong answer, it all depends on your requirements. We have seen specific scenarios favouring the iOS platform and others suggesting us to go for Android.
By keeping all the above information in mind, you can contact a mobile app development company that will help you build your app without worrying about the operating system.