SlideShare a Scribd company logo
Mobile	Apps	Development	-
Ins	&	Outs
Ashif	Mohammad	Iqbal
Technical	Lead						
Cefalo	Bangladesh	Ltd.
Types	of	Mobile	Applications
There	are	different	types	of	Mobile	applications
– Native	Applications
– Hybrid	Application
– Progressive	Web	Applications	(PWAs)
We	are	going	to	Talk	only	about	Native	applications	
today….
Mobile	Application	Platforms
Major	Mobile	OS
– iOS
– Android
– Windows	(Dying	soon	L)
Development	tools
• iOS
– Xcode
– Appcode
• Android
– Android	Studio
– IntelliJ IDEA
– Eclipse	(Not	used	much	anymore)
Android	Application	Flow
Android	Manifest
Android	Gradle file
iOS Application	Flow
iOS Project	Setting
iOS Info.plist
Application	Life	Cycle	- iOS
Android	Development	Process
Android	Recommended	Architecture
Android	Key	components
The	basic	components	of	any	android	application	are	the	following:
• Activities
– Basic	component	of	most	applications
– Most	applications	have	several	activities	that	start	each	other	as	needed
– Each	is	implemented	as	a	subclass	of	the	base	Activity	class
• Broadcast	receivers
– Receive	and	react	to	broadcast	announcements
• Services
– Runs	in	the	background	indefinitely
– You	can	bind	to	a	an	existing	service	and	control	its	operation
• Content	Providers
– Makes	some	of	the	application	data	available	to	other	applications
– It’s	the	only	way	to	transfer	data	between	applications	in	Android	(no	shared	
files,	shared	memory,	pipes,	etc.)
– Other	applications	use	a	ContentResolver object	to	access	the	data	provided	
via	a	ContentProvider
Activity	Life	Cycle
Fragment	Life	Cycle
Views
• View objects	are	used	specifically	for	drawing	
content	onto	the	screen	of	an	Android	device.
– Display	Views
• TextView,	ImageView
– Input	and	controls
• Button,	EditText,	Switch,	CheckBox etc.
– Adapter	based	views
• ListView,	GridView,	RecyclerView
ViewGroups
ViewGroups
• Used	to	contain	other View and ViewGroup.
• Used	for	creating	a	hierarchy	of View objects	
• ViewGroup objects	can	be	instantiated	in	the	same	way	as	
standard View items	in	XML	or	in	Java	code.
ViewGroups
• Relative	Layout:	is	a	ViewGroup that	displays	child	views	in	relative	
positions
• Linear	Layout:	is	a	ViewGroup that	aligns	all	children	in	a	single	direction,	
vertically	or	horizontally
• Frame	Layout:	is	a	placeholder	on	screen	that	is	used	to	display	a	single	
view
• Constraint	Layout:	is	a	ViewGroup which	allows	you	to	position	and	size	
widgets	in	a	flexible	way.
• ScrollView:	An	extension	of	the FrameLayout,	the ScrollView class	handles	
scrolling	its	child	objects	on	the	screen.
• ViewPager:	Used	for	managing	multiple	views	while	only	displaying	one	at	
a	time.
• RecyclerView
• CoordinatorLayout:	The CoordinatorLayout class	uses	a Behavior object	to	
determine	how	child View items	should	be	laid	out	and	moved	as	the	user	
interacts	with	your	app.
Recycler	View
• What	is	RecyclerView?
– The RecyclerView widget	is	a	
more advanced and flexible	version	of	ListView.
• Why	RecyclerView?
– RecyclerView is	a	container	for displaying	large	data	
sets that	can	be	scrolled	very	efficiently	by	
maintaining	a	limited	number	of	views.
• When	you	should	use	RecyclerView?
– You	can	use	the	RecyclerView widget	when	you	have	
data	collections	whose elements	changes	at	
runtime based	on	user	action	or	network	events.
RecylerView
RecylerView
Constraint	Layout
• Allows	to	make	large	complex	layouts	with	a	
flat	view	hierarchy.
• No	Nested	view	groups
• More	flexible	compared	to	Relative	layout.
Traditional	Layout	Design
Traditional	Layout	Design
Constraint	Layout	Design
Navigation	Related	UI	Elements
ActionBar
TabLayout
BottomNavigation
Android	Navigation	
• Refers	to	the	interactions	that	allow	users	to	
navigate	across,	into,	and	back	out	from	the	
different	pieces	of	content	within	the	app.
• Helps	developers	to	implement	navigation,	from	
simple	button	clicks	to	more	complex	patterns,	
such	as	app	bars	and	the	navigation	drawer.
• Also	ensures	a	consistent	and	predictable	user	
experience	by	adhering	to	an	established	set	of	
principles.
Navigation	Component
Consists	of	three	major	parts:
• Navigation	graph:	
– An	XML	resource	that	contains	all	navigation-related	information	in	
one	centralized	location.	
– includes	all	of	the	individual	content	areas	within	the	app,	called	
destinations,	as	well	as	the	possible	paths	that	a	user	can	take	through	
the	app.
• NavHost:	
– An	empty	container	that	displays	destinations	from	navigation	graph.	
– Navigation	component	contains	a	default	NavHost implementation,	
NavHostFragment,	that	displays	fragment	destinations.
• NavController:	
– Manages	app	navigation	within	a	NavHost.	
– Orchestrates	the	swapping	of	destination	content	in	the	NavHost as	
users	move	throughout	the	app.
Navigation	Graph
Benefits	of	Navigation	Component
The	Navigation	component	provides	a	number	of	other	benefits,	
including	the	following:
• Handling	fragment	transactions.
• Handling	Up	and	Back	actions	correctly	by	default.
• Providing	standardized	resources	for	animations	and	transitions.
• Implementing	and	handling	deep	linking.
• Including	Navigation	UI	patterns,	such	as	navigation	drawers	and	
bottom	navigation,	with	minimal	additional	work.
• Safe	Args - a	Gradle plugin	that	provides	type	safety	when	
navigating	and	passing	data	between	destinations.
• ViewModel support	- you	can	scope	a	ViewModel to	a	navigation	
graph	to	share	UI-related	data	between	the	graph's	destinations.
Guide	To	Background	Processing
iOS App	Basic	Workflow
Major	Components	iOS
• ViewController
• View
• NavigationController
• TabController
• UITableView
• UICollectionView
• AlertController
iOS Most	Used	Elements
NavigationBar
UiCollectionView
UiTableView
UITabBarController
Navigation	iOS
Life	Cycle	of	UIViewController
UITableViewController
UICollectionViewController
iOS Storyboard
Grand	Central	Dispatch
GCD is	a	low-level	API	for	managing	concurrent	operations.
DispatchQueue:
• Concurrent:	starting	multiple	tasks	at	the	same	time,	but	
doesn’t	guarantee	for	the	finish	at	same	time.	Tasks	can	
finish	in	any	order.
• Serial:	executing	one	task	at	a	time.
• Sync:	When	a	work	item	is	executed	synchronously	with	
the sync method,	the	program	waits	until	execution	
finishes	before	the	method	call	returns.
• Async:	executes	asynchronously	with	the async method,	
the	method	call	returns	immediately.
Grand	Central	Dispatch
• Global	Queue:	Used to	perform	non-UI	work	in	the	
background.
• Main	Queue:	Used	to	update	the	UI	after	completing	
work	in	a	task	on	a	concurrent	queue.
Dispatch	Queue	Priority:
– .userInteractive
– .	userInitiated
– .default
– .utility
– .background
– .unspecified
Examples
Perform background Quality	of	
Service	(QOS)	task	-
DispatchQueue with	
delay	-
Dispatch	Groups	-
What	Makes	A	Good	UI?
• Reusable
• Easy	to	understand
• Testable
Common	Mistakes
• Monolithic	views
• Business	logic	inside	custom	views
• Neglecting	UI	in	code	reviews
Common	Architecture
Dependency	Manager
• iOS
– CocoaPods
– Swift	Package	Manager
– Carthage
• Android
– Gradle
– Maven
Build	Variants/Scheme
Build	Type
– Debug	
– Release
Build	Flavors:	A	flavor	is	used	to	specify	custom	features.	For	
example,	if	production	code	is	slightly	different	than	
development	code.	
The	combination	of	Build	Type	and	Flavor	is	known	as	Build	Variant.	
For	example,	for	above	build	types	(debug	and	release)	and	product	
flavours (free	and	paid	versions),	build	variants	can	be	freeDebug,	
freeRelease,	paidDebug,	paidRelease.
Some	Features
• Push	Notification
• In	App	purchase	
• Camera
• Maps
Native	Development
Pros
– They	are	very	fast	and	responsive	because	they	are	built	for	that	
specific	platform.
– They	have	the	best	performance.
– They	are	more	interactive,	intuitive	and	run	much	smoother	in	
terms	of	user	input	and	output.
Cons
– They	are	considerably	more	expensive	to	develop	compared	to	
cross-platform	and	web	applications.
– They	require	more	time	to	develop	as	one	application	has	to	be
written	in	different	languages	for	different	platforms.
– They	have	a	higher	cost	of	maintenance	and	pushing	out	
updates,	due	to	multiple	source	code	bases.
Hybrid	Development
Pros
– Adaptable	to	multiple	platforms,	as	the	same	code	can	
be	re-used	for	Android,	iOS,	and	Windows.
– Unified	and	less	expensive	development,	as	the	app	only	
has	to	be	developed	once	using	one	code	base.
– Faster	development	time	when	compared	to	native	apps	
as	only	one	development	process	is	involved.
Cons
– Slower	app	performance	when	compared	to	Native	
Apps,	because	the	hybrid	framework	acts	as	a	bridge	to	
communicate	with	the	phone’s	native	features.
– Apps	with	heavy	animations	and	sound	effects	aren’t	as	
seamless	as	their	native	counterparts.
Progressive	Web	Apps	Development
Pros
– Easy	to	build.
– Easy	to	maintain.
– Works	offline	and	performs	well	on	low-quality	networks.
– Build	one	app	for	all	platforms	— iOS,	Android,	etc.	as	long	as	it	
can	run	a	browser.
Cons
– Needs	a	browser	to	run.	Users	have	to	take	another	step	to	type	
in	the	URL	of	the	app	which	amounts	to	a	poor	user	experience.
– Web	apps	are	less	interactive	and	intuitive	than	native	apps.
Language	Preference
• Swift	for	iOS
• Kotlin for	Android
Something	To	Think
• I	don't	have	an	app	on	play-store,	what	should	I	focus	
on?
• I	do	have	apps	on	the	play-store,	what	next	I	should	
focus	on?
• Does	having	an	app	on	play-store	gives	me	an	edge	
over	other	candidate	on	the	Interview-board?
• What	do	to	when	we	are	stuck??
• Which	to	choose,	iOS or	Android?
• Why	to	choose	both	and	becoming	expert	on	one?
Android	Useful	Links
• Android	Jetpack
• Android	Manifest
• Android	Navigation
• Developing	Android	Apps	with	Kotlin
• Common	Architectural	principles
• Android	Developer	Guide
iOS Useful	Links
• swift.org
• Swift	Documentation
• Appcoda
• Raywenderlich	Tutorial
• Raywenderlich	Swift	Tutorial
• Github	Tutorials
• Background	Tasks
Mobile appsdevelopment
Thank	you

More Related Content

PPTX
Hello androidforyarlmeetup
PDF
Introduction to android
PDF
Mobile application development2
PDF
MyAppconverter platform mappings
ODP
Custom Android App Development – Web Animation India
PPTX
Android application development ppt
PPTX
Android Fundamentals, Architecture and Versions
PPTX
Mohit Jaiswal
Hello androidforyarlmeetup
Introduction to android
Mobile application development2
MyAppconverter platform mappings
Custom Android App Development – Web Animation India
Android application development ppt
Android Fundamentals, Architecture and Versions
Mohit Jaiswal

What's hot (11)

PPTX
Android Internship report presentation
PDF
Modeling on the Web
PPTX
Cegonsoft Final Year Projects In Coimbatore,
PPTX
Building Hybrid Apps with AngularJS and Ionic
PPT
Android Application Development Training by NITIN GUPTA
KEY
iPhone OS: The Next Killer Platform
PPTX
INTEL XDK
PPT
Hybrid vs Native vs Web Apps
PPTX
Introduction to Android - Seminar
PDF
Developing Applications on iOS
PPT
Hybrid mobile app development
Android Internship report presentation
Modeling on the Web
Cegonsoft Final Year Projects In Coimbatore,
Building Hybrid Apps with AngularJS and Ionic
Android Application Development Training by NITIN GUPTA
iPhone OS: The Next Killer Platform
INTEL XDK
Hybrid vs Native vs Web Apps
Introduction to Android - Seminar
Developing Applications on iOS
Hybrid mobile app development
Ad

Similar to Mobile appsdevelopment (20)

PDF
Mobile Application Development
PPTX
Introduction To Mobile Application Development
PPTX
Android development
PPTX
Mobile Application Development Unit 1.pptx
PPTX
Android Development: Approach for Agile Teams
PDF
The Great Mobile Debate: Native vs. Hybrid App Development
PDF
Android Application Development
PPTX
Mobile app development: The global facts and truths
PDF
Xamarin Platform
PPTX
Mobile Application development - Introduction
PPTX
I os application with android background
PPTX
Tk2323 lecture 1 introduction to mobile application
PPTX
Android | Xamarin | Mobile Application development
PPSX
Mobile App Development and Xamarin as a Complete Mobile Solution
PDF
Mobile Developer's Guide To The Galaxy 11th edition
PDF
Mobil Uygulama Geliştirme Klavuzu
PDF
Mobile Developer's Guide To The Galaxy 12th Edition
KEY
Jan Kroon's talk @mdevcon 2012
PDF
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
PPTX
Learn How to Get Started with iOS App Development.pptx
Mobile Application Development
Introduction To Mobile Application Development
Android development
Mobile Application Development Unit 1.pptx
Android Development: Approach for Agile Teams
The Great Mobile Debate: Native vs. Hybrid App Development
Android Application Development
Mobile app development: The global facts and truths
Xamarin Platform
Mobile Application development - Introduction
I os application with android background
Tk2323 lecture 1 introduction to mobile application
Android | Xamarin | Mobile Application development
Mobile App Development and Xamarin as a Complete Mobile Solution
Mobile Developer's Guide To The Galaxy 11th edition
Mobil Uygulama Geliştirme Klavuzu
Mobile Developer's Guide To The Galaxy 12th Edition
Jan Kroon's talk @mdevcon 2012
TK2323 Lecture 1 - Introduction to Mobile Application.pdf
Learn How to Get Started with iOS App Development.pptx
Ad

Recently uploaded (6)

PPTX
ASMS Telecommunication company Profile
PDF
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
DOC
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
PDF
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
PPTX
Introduction to Packet Tracer Course Overview - Aug 21 (1).pptx
DOC
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
ASMS Telecommunication company Profile
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
Introduction to Packet Tracer Course Overview - Aug 21 (1).pptx
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证

Mobile appsdevelopment