Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Mobile App Development
CSE 3203
Overview of Mobile Systems
Jack G. ZhengFall 2018
Content Overview
• Development choices
• Platforms and tools
• App development frameworks
• Services
2
App Development Considerations
• Platform– A platform defines and supports all major app features and activities
– Usually includes hardware and operating systems
– Sometimes also includes application development and management frameworks
– Major mobile platforms: Android, Apple (iOS), Windows (mainly laptops)
• Development tools and frameworks. These include:– Programming language
– SDK (run time, compilers, etc.)
– Code editor or IDE
– App frameworks
– Libraries and services
• App distribution/update methods– App store: including official app store and third party app store
– Direct internet access or download
3
App Development Choices
• Platform native app– These apps can only run on its target platform. The
development tools and frameworks for each platform is different and no compatible.
– Major development platforms: Android, Apple iOS, Windows
• Cross platform– Cross platform apps can run on multiple platforms
using one set of development tools and frameworks.
– Further categorized as • Cross platform native app
• Hybrid web app
• Web app (app like website) or mobile friendly website
4
Mobile App Development Options
5
https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:
_Understanding_Your_Mobile_Application_Development_Options
A program designed to run directly on a specific mobile operating system.
A web based application that runs in any web browser especially that designed for mobile devices.
Applications developed using Web development technologies and wrapped in a mobile app container
* New to the diagram: cross-platform native app
https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Optionshttp://www.telerik.com/blogs/everything-you-wanted-to-know-about-native-hybrid-and-web-apps-but-were-afraid-to-askhttp://www.sitepoint.com/native-hybrid-or-web-apps/http://www.ymedialabs.com/hybrid-vs-native-mobile-apps-the-answer-is-clear/
Comparison of the Three Development Options
Native Apps Mobile Web Hybrid
Device
features
Can fully utilize platform/OS
features if allowed, such as
GPU, camera, location,
sensors, and interactions
with file systems and other
apps.
Access to devices features
are limited to the browser
environment.
Can utilize platform/OS
features if provided by the
SDK, which are usually
provided as JavaScript
APIs.
UX/UI Best; smooth interaction as
UI is very responsive. Rich
interactivity and advance
graphics.
Not as good as native app;
may have delays.
Looks like an app, but may
have performance issues.
Development
Platform
Applications are platform
dependent. They have to be
written and/or compiled to a
specific OS*. Example:
- Andriod (Java) ( Android )
- iOS (Objective C, Swift)
- Windows (.Net, C#)
- * Xamarin (all)
Web applications are cross
platform and can use standard
languages such as
HTML/CSS/JavaScript.
Programs runs in browsers,
although they may have
slightly differences in different
browsers.
Hybrid applications are
developed using standard
web technologies, but
complied to each specific
platform.
Distribution /
Installation
App Store, or direct
downloaded; need
installation
Web; no installation App Store, or direct
downloaded; need
installation
How to Choose?
• Purpose of the app: does it use full OS and device support? Does it need active user interaction and performance, or reading focused?– Application complexity
– Richness/response of user interactivity
– Performance
– Device/OS feature access
• Installation and maintenance
• Platform target/requirement
• Development expertise and cost (including testing and maintenance effort)
7
App or Web?
8
http://arc.applause.com/2015/09/2
8/digital-strategy-apps-vs-web/
I like to think of this way. The
mobile web is the window of
your store. Users window shop
on your mobile website.
Getting them to download and
install and use your mobile
app is like getting them to
come into the store. And that’s
where the action is long term.
9
https://www.scnsoft.com/bl
og/mobile-web-app-types
Native Apps
• They’re great for frequent, heavy use tasks
like communicating with friends, family, and
colleagues — something we do multiple times
a day, every day.
• Apps like Snapchat, WhatsApp, and
Facebook Messenger need to access
cameras, microphones, and the OS directly.
10
Native App Development
11
http://shrinidhikaranth.blogspot.com/2015/01/comparison-between-mobile-platforms-for.html
http://www.androidauthority.com/developing-for-android-vs-ios-697304/
http://whallalabs.com/mobile-application-development-ios-vs-android-vs-windows-phone/
iOS App
• Language: Objective C, Swift
• IDE: Xcode
• Distributed through Apple App Store only
12
Android App Development
• Language:
– Java: primary android development language.
– Kotlin: language from JetBrains which received first-party support from Google, announced in Google I/O 2017 https://www.androidauthority.com/kotlin-android-introduction-775678/
• IDE
– Android Studio: the official IDE from Google, based on IntelliJ IDEA. https://developer.android.com/studio/
– Eclipse: This open source IDE is the second most popular in the world https://www.developer.com/products/android-IDEs/eclipse-android-programming-ide-overview.html
13
Universal Windows Platform
• The Universal Windows Platform (UWP) is
the app platform for Windows 10. You can
develop apps for UWP with just one API set,
one app package, and one store to reach all
Windows 10 devices – PC, tablet, phone,
Xbox, HoloLens, Surface Hub and more.
• https://docs.microsoft.com/en-
us/windows/uwp/get-started/whats-a-uwp
14
Cross Platform App
• Advantages
– Greater reach
– Cost/effort effective
– Easier deployment/distribution/maintenance
• Types
– Web app (app like website) or mobile friendly
website
– Hybrid web app
– Cross platform native app
15
Mobile Web Dev Platform
• Major tools: web tech stack– Front end: HTML 5, CSS, JavaScript
– Back end: PHP, Java, ASP.Net, etc.
• Standardize mobile web development– Eliminates the need to create, maintain, and support apps for different
mobile platforms (native platforms)
• HTML 5 has provided a set of features and tools for building mobile apps– Mobile friendly tags – activate relevant phone features
– JavaScript APIs to devices features• Geolocation, Offline
• Web storage
• Touch events
• Drawing
16
<a href="tel:+14155557777">Order Pizza Now!</a>
<a href="sms:+14155558888?body=Hello">Text me!</a>
Hybrid Web Apps
• Hybrid apps are apps developed based on the web technologies (HTML, CSS, JavaScript) and wrapped in a platform specific native container– Similar to Java and .Net’s vision of Write-Once-Run-Anywhere
– Device features are exposed through JavaScript API
– The execution of the app relies on the browser engine of the OS it is installed in
• Gartner Says by 2016, More Than 50 Percent of Mobile Apps Deployed Will be Hybrid– http://www.gartner.com/newsroom/id/2324917
• Major framework: – Apache Cordova
– PhoneGap
– Appcelerator Titanium
– IBM MobileFirst
17
Cross-Platform Native App
• This solution uses a common development environment for all platforms, but wraps (compiles) them to a target platform.
– Wrapping all native OS libraries
– Similar to hybrid, but the apps are native apps, not relying on browser engines.
• Example development framework– Xamarin: Using C# and .Net for development
https://visualstudio.microsoft.com/vs/features/mobile-app-development/
– React Native https://facebook.github.io/react-native/
– https://www.altexsoft.com/blog/engineering/xamarin-vs-react-native-vs-ionic-cross-platform-mobile-frameworks-comparison/
• Is Xamarin hybrid?– The short answer is no.
– https://www.quora.com/Is-Xamarin-hybrid-development
– http://www.cygnet-infotech.com/blog/phonegap-or-titanium-or-xamarin-which-cross-platform-should-you-choose
• Others– http://www.appcelerator.com
– http://monocross.net
18
Application Framework
• The main aim of frameworks is to increase productivity by reducing efforts which eventually saves lot of time for developers to resolve any other important issues in the app or game. These frameworks provides inbuilt tools for developers to work instantly on difficult and lengthy part of coding.
• Vendor frameworks– Android SDK
– Cocoa Touch
• Major third party frameworks– Ionic
– jQuery mobile: http://jquerymobile.com
– Sencha Touch
– Titanium Appcelerator
– Framework7
– More: http://mobile-frameworks-comparison-chart.com
19
Services and Service Providers
• Mobile backend as a service (MBaaS), also known as "backend as a service" (BaaS) is a model for providing web app and mobile app developers with a way to link their applications to backend cloud storage and APIs exposed by back end applications while also providing features such as user management, push notifications, and integration with social networking services.
• Top providers– Kinvey
– Sencha
– Parse
– Azure https://docs.microsoft.com/en-us/azure/app-service-mobile/
20
Some services provided by cloud
based• Connect to your enterprise systems:
• Authentication and authorization: Support for identity providers, including Azure Active Directory for enterprise authentication, plus social providers such as Facebook, Google, Twitter, and Microsoft accounts. Mobile Apps offers an OAuth 2.0 service for each provider. You can also integrate the SDK for the identity provider for provider-specific functionality.
• Discover more about the authentication features.
• Data access: Mobile Apps provides a mobile-friendly OData v3 data source that's linked to Azure SQL Database or an on-premises SQL server. Because this service can be based on Entity Framework, you can easily integrate with other NoSQL and SQL data providers, including Azure Table storage, MongoDB, Azure Cosmos DB, and SaaS API providers such as Office 365 and Salesforce.com.
• Offline sync: The client SDKs make it easy to build robust and responsive mobile applications that operate with an offline dataset. You can sync this dataset automatically with the back-end data, including conflict-resolution support.
• Discover more about the data features.
• Push notifications: The client SDKs integrate seamlessly with the registration capabilities of Azure Notification Hubs, so you can send push notifications to millions of users simultaneously.
• Discover more about the push notification features.
21
Want to be an app developer?
• https://www.coursereport.com/blog/ultimate-
guide-to-mobile-development-bootcamps
22
http://www.businessofapps.com/guide/ios-android-developer-salary/
Good Resources• Native, HTML5, or Hybrid
– https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Application_Development_Options
– https://www.mobiloud.com/blog/native-web-or-hybrid-apps/
– http://cacm.acm.org/magazines/2011/5/107700-mobile-application-development/fulltext
– https://www.cleveroad.com/blog/native-or-hybrid-app-development-what-to-choose
– http://inoutput.io/articles/development/choosing-the-right-mobile-app-for-your-project-native-vs-cross-platform-vs-hybrid
– http://www.sitepoint.com/native-hybrid-or-web-apps/
– https://readwrite.com/2015/02/27/native-vs-web-apps-ceasefire/
– http://www.ymedialabs.com/hybrid-vs-native-mobile-apps-the-answer-is-clear/
– http://gigaom.com/2012/12/19/why-the-mobile-web-vs-apps-debate-is-a-false-dichotomy/
• iOS app development vs. Android– https://thetool.io/2018/mobile-app-development-ios-vs-android
• http://mobile-frameworks-comparison-chart.com/
• https://dzone.com/mobile-app-developer-tutorials-tools-news
• Development process:– https://www.techinasia.com/talk/complete-overview-mobile-app-development-process-infographic
– https://thebhwgroup.com/blog/mobile-app-development-process
23