Unit 1
Unit 1
Android Versions:
Version Code Name API (Application Programming
Interface) Level
1.5 Cupcake 3
1.6 Donat 4
2.1 Éclair 7
2.2 Froyo 8
2.3 GingerBread 9 and 10
3.1 and 3.3 Honeycomb 12 and 13
4.0 Ice Cream Sandwich 15
4.1, 4.2 and 4.3 Jelly Bean 16,17 and 18
4.4 KitKat 19
5.0 Lollipop 21
6.0 Marshmallow 23
7.0 Nougat 24-25
8.0 Oreo 26-27
History of iOS:
1) First prototype of Apple Phone was designed in 1983.
2) iOS is basically only for iPhone, iPad, iTouchPad.
3) First release of iOS was in back 2007.
4) After the version 12, iOS renamed with iPadOS13 and so on for iPad and iPadTouch.
iOS Versions:
Version Initial Release Date Latest Version Last Release Date
iPhone OS 1 June 29,2007 1.1.5 July 15,2008
iPhone OS 2 July 11,2008 2.2.1 January 27,2009
iPhone OS 3 June 17, 2009 3.2.2 February 2, 2010
iOS 4 June 21, 2010 4.3.5 July 25, 2011
iOS 5 October 12, 2011 5.1.1 May 7, 2012
iOS 6 September 19, 2012 6.1.6 February 21, 2014
iOS 7 September 18, 2013 7.1.2 June 30, 2014
iOS 8 September 17, 2014 8.4.1 August 13, 2015
iOS 9 September 16, 2015 9.3.6 July 22, 2019
iOS 10 September 13, 2016 10.3.4 July 22, 2019
iOS 11 September 19, 2017 11.4.1 July 9, 2018
iOS 12 September 17, 2018 12.5.7 January 23, 2023
iOS 13 / iPadOS 13 September 19, 2019 13.7 September 1, 2020
(iOS)
September 24, 2019
(iPadOS)
iOS 14 / iPadOS 14 September 16, 2020 14.8.1 October 26, 2021
iOS 15 / iPadOS 15 September 20, 2021 15.8 October 25, 2023
iOS 16 / iPadOS 16 September 12, 2022 16.7.3 December 11, 2023
(iOS)
October 24, 2022
(iPadOS)
iOS 17 / iPadOS 17 September 18, 2023 17.2 December 11, 2023
Research and
Deployment Planning
Stage
Testing WireFrames
Technical
Feasibility &
Development
Back End
Assessment
Design Prototyping
1. The Research/Planning Stage
Investigate your market and rival apps that are currently available as your first course of action. Write
down all the specifics you can think of, such as the app's goal, target market, preferred platforms, app
development language and frameworks, features your competitor's app offers (and whether you would
want the same or different ones), a development and launch schedule, and marketing strategies. Early
strategic business analysis will assist you in determining the appropriate ROI, or return on investment
element, which will ultimately direct you in choosing and adhering to the budget.
2. Wireframes
Documenting and wireframing your application is the next stage. Creating thorough sketches of your
ideal app—its features, appearance, and other details—will be very helpful when developing and
implementing the app in the future. Wireframes are used to develop all of your ideas after drawing. You
can now precisely organize all of your design elements and check for any obvious usability problems.
This step attempts to provide a clear picture of how your intended functioning app will appear once all
of your concepts and features have been integrated. It goes without saying that at this point, unleash
your inner artist.
4. Prototyping
At this point, you ought to construct a quick prototype. An app's experience cannot be fully understood
without using it and seeing how the workflows work. To gain a rapid understanding of how it functions
and feels, build a prototype and give it to a user. Accept constructive criticism; it will help guide your
future development efforts.
5. Design
After prototyping is finished, you can start writing code. Your UI and UX designers take over at this
point. While your user interface (UI) designer creates the overall appearance and feel of your
application, your user experience (UX) designer creates the interactions between various design aspects.
Here, you will find schematics and illustrated instructions. These serve as a roadmap for communicating
your vision for the finished product and how you want customers to interact with it to your engineers.
6. Development
In a way, this phase begins very early. The development stage includes everything from creating a
workable prototype to testing it at each level. However, as this phase goes forward, the fundamental
features are put to the test extensively. After that, the app enters the deployment stage. Additionally,
every bug has been resolved and corrected. If the project is complicated, the major application is divided
into smaller modules and worked on separately before being completed and released.
7. Testing
Testing is a critical step in the development lifecycle of mobile apps. Early testing is usually a good idea
because it may assist control the ultimate expenditures. The expense of fixing bugs and other technical
issues increases with the further one goes in the development life cycle. Ideally, at this point, all aspects
of the app should be evaluated, such as performance, stress, security checks, usability, compatibility,
and UI. It would be wise to ask a portion of your intended audience to test it out. The input you receive
from beta testers will help you determine whether your software is practical for everyday use.
8. Deployment
Your application should now be prepared for submission. Decide the day to hold the official launch. The
policies for launching apps developed for iOS and Android platforms will differ. Keep an eye on those
factors. Finally, remember that this is just the beginning of your process. Rather, it's a fresh start all
together. After the app is released, users will start to submit feedback, which you will need to take into
account for next updates. So initiating a fresh cycle of development. Throughout this step, keep an eye
on your resources and your long-term dedication to the project. That's all there is to it. This marks the
completion of the last phase!
After reading about these phases, you probably have a good notion of how difficult it is to carry out the
entire mobile app development lifecycle properly. In addition to the successful completion of these
challenging phases, it's critical to recognize that the app market is a fiercely competitive place.
Therefore, companies developing new apps should exercise extreme caution in their app development
processes, since any error could result in a loss of market share.
Android Architecture:
Different numbers of components make up the Android architecture, which supports the needs of any
Android device. The open-source Linux Kernel that powers Android apps is made up of several C/C++
libraries that are made available via application framework services.
The main components of Android Architecture are:
1. Application
2. Application Framework
3. Android/Application Runtime
4. Native/Platform Libraries
5. Linux Kernel
Linux Kernel: It is called as a “Heart of Android Architecture”. It controls all of the drivers that
are needed during runtime, including those for displays, cameras, Bluetooth devices, audio
devices, memory cards, and more.
An abstraction layer between the hardware of the device and the other elements of the Android
architecture will be provided by the Linux Kernel. Memory, power, device management, and
other things fall under its purview.
Listed down are the features of Kernel:
1. Security: The security between an application and the system is managed by the Linux
kernel.
2. Memory Management: It effectively manages the memory, giving us the flexibility to
create our apps.
3. Process Management: It does a good job of process management, allocating resources
to processes as needed.
4. Network Stack: It manages network communication efficiently.
5. Driver Model: It guarantees that the program functions correctly on the hardware and
that the manufacturers of the devices are accountable for integrating their drivers into
the Linux build.
Platform Libraries: To enable Android development, the Platform Libraries comprise a number
of Java-based and C/C++ essential libraries, including Media, Graphics, Surface Manager,
OpenGL, and others.
Some of common libraries we use are:
1. Media library supports to play and record an audio and video formats.
2. Graphics library supports image formats.
3. Surface Manager is responsible of controlling display subsystem access.
4. SGL and OpenGL for 2D and 3D computer graphics, there exist cross-language and
cross-platform application program interfaces (APIs).
5. SQLite provides support for database.
6. Web-Kit the entire feature set for displaying web content and streamlining page loading
is provided by this open source web browser engine.
Application Runtime: This is one of the most important part of Android Architecture. It
includes elements such as the Dalvik virtual machine (DVM) and core libraries. It primarily serves
as the foundation for the application framework and, with the aid of the core libraries, powers
our application.
Dalvik Virtual Machine (DVM), like Java Virtual Machine (JVM), is a register-based virtual
machine that was created especially for Android and tuned to execute multiple instances of the
software on a device in an efficient manner. Low-level memory management and threading are
handled by the Linux kernel layer. We can use the conventional Java or Kotlin programming
languages to develop Android applications thanks to the core libraries.
Application Framework: A number of crucial classes are provided by the Application
Framework and are needed to construct an Android application. It assists in controlling the user
interface with application resources and offers a general abstraction for hardware access.
Generally speaking, it offers the services that enable us to develop a certain class and make it
useful for the building of applications.
It contains a variety of services, such as package manager, view system, activity manager,
notification manager, and others, that are useful for developing our application in accordance
with the requirements.
Applications: The top layer of the Android architecture is called Applications. Only this layer
will have the pre-installed apps (such home, contacts, camera, gallery, etc.) and third-party apps
(like games, chat apps, etc.) that were downloaded from the play store.
With the aid of the classes and services the application framework offers, it operates inside the
Android run time.
Different kinds of resource files, source code files, and app modules are included in the Android project.
We will examine every folder and file within the Android application.
1. Manifest Folder
2. Java Folder
3. Resource (res) Folder
a. Drawable Folder
b. Layout Folder
c. MipMap Folder
d. Values Folder
4. Gradle Scripts
Manifests Folder:
AndroidManifest.xml is found in the Manifests folder and is used to create our Android
application. This file includes details about our program, including the version for Android,
metadata, the Kotlin file's states package, and other application components. It serves as a
bridge between our application and the Android OS.
Below is the manifests folder structure:
Java Folder:
All of the Java and Kotlin source code (.java) files that we generate while developing the app are located
in the Java folder, along with additional Test files. The class file MainActivity.java will by default generate
automatically under the package name "com.example.myapplication" whenever we start a new Java
project, as demonstrated below.