Do you want to make a mobile application? Or maybe you have worked in software development in other areas, but suddenly you are appointed project manager or product owner for an application on Android? Then you need to know a few simple things about what you need to develop for Android and how it differs from developing for iOS (spoiler: everything is simpler and cheaper).
Personnel
Potentially, the number of developers for Android is significantly higher than the number of developers for iOS. Almost any programmer can try to write applications for the 'green robot', the entry threshold is minimal. However, if you want to hire cool developers for a serious project, then the situation here is typical for the entire industry: there are not so many professionals, and they are not cheap. Sometimes even companies with a serious staff of developers outsource some of their projects (for example, this is what Yandex does).
Technics
This is where the main advantage (in theory) of development for Android comes in – in order to write applications, you need a computer. Any. I started writing my first applications in 2011 on a Dell Inspiron Mini 12 – a netbook with a dead processor Intel Atom (not requiring active cooling), 1 GB of memory and a hard drive with a spindle speed of 4200 rpm. But over time, everything changes. Other tools require different resources. Only one application build system – gradle – writes on large projects that it would be nice to personally allocate 2 GB of memory to it. Personally to her, and not to the entire development package Android Studio. Therefore, today I consider the Core i5, 8 GB of memory and SSD as the minimum comfortable set.
Real freedom reigns in the choice of OS. Development for Android can be done on Windows, Mac OS and Linux. This is very convenient and allows you to close all possible cases, whether it is strict corporate standards in the company or the management of projects by one developer both under iOS and under Android).
Developers can run and debug some applications directly on the emulator, but for some they will definitely need hardware gadgets. Especially a lot of them will be needed for testing (but more on that later).
Design
When developing an application design, be sure to consider the variety of devices and their screens. So, for example, most smartphones from a software point of view have the following diagonals:
- 3.88 ″ (ultra-cheap devices with a physical diagonal of 4-5 ″ and a resolution of 800 × 480);
- 4.6 ″ (main 'fleet' of smartphones);
- 5.2 ″ (more or less new flagships with a physical diagonal of 5.2 ″).
Also, don't forget about different screen geometries (aspect ratios).
Another challenge for designers is the variety of pixel densities. Raster graphics should be prepared for at least 240, 320, 480 dpi (sometimes even 640 dpi). However, since the introduction of 420 dpi pixel density as standard, Google recommends using vector graphics in SVG format whenever possible. In this case, the designer does not have to make 3-4 options for each icon.
Testing
Testing is one of the most sore spots in the development process for Android. It happens that errors in applications are not reproduced on the emulator, but are reproduced on the smartphone. It happens that the error can only be seen on a special diagonal, pixel density, processor, version Android or shell.
All this leads to the fact that for quality testing it is necessary to have many smartphones (and / or tablets, if you make applications for them) and update them in a timely manner. And, of course, the zoo of devices affects the duration of testing: the same functionality has to be run on several devices, not one.
'Give me an installer'
Today any smartphone on Android has the option to install software from third-party sources. This means that the developer can always build the package with the application (file with the apk extension). In the future, this application can be installed on any smartphone (of course, subject to standard restrictions, for example, the application for Android 5+ cannot be installed on 4.). This does not require any third-party services, pre-registration of devices and other things. Just install and get a working application. In addition, if you plan to develop a large number of applications for limited use (for example, within an enterprise), then you can create your own application store (like Yandex.Store).
Publishing to Google Play
Despite the fact that manual installation of applications sometimes takes place even for quite serious companies, Google Play remains the most 'correct' way. In order to start publishing applications there, you need to register as a developer and pay $ 25 (one-time payment, no subscription fee is provided).
Google, unlike Apple, does not provide any manual application verification. More precisely, a spot check can be. But there are no special requirements for preparation for the check. For example, if your application has some kind of closed login (registration) system, then when publishing to the AppStore you must pass Apple login data. Google doesn't require anything like that. The deadlines for publishing applications themselves are usually shorter: no more than a day for a new application and several hours for updating. I have never encountered a refusal to publish.
But once there was a case when Google was suspected of infringement of copyright for the content displayed in the application. An attempt to explain that all the content was legally provided by the copyright holder did not work, and as a result, the application was republished from another account.
Total
So, to start developing and distributing applications under Android, you will need:
- almost any computer;
- almost any smartphone;
- bank card with $ 25 (if you need to publish on Google Play);
- someone who knows or is willing to learn Android Studio and Android SDK.
Due to this, it is usually easier to try to make an application under Android than under iOS, and it is on Android that prototyping is often carried out ('we will make a small prototype of the application and try how much it is convenient to use it ').