SlideShare una empresa de Scribd logo
1 de 24
Development of a
mobile app for Android


            Alex Reid
    SuperMondays, February 2010
Alex Reid
• Sorry, not the cage fighter
• I’m a software developer
• Lead development of a projects database
  here at the University since 2006.
• Mobile development
 • Android mainly but also iPhone and BB
Content
• Overview of mobile apps
• How you write a mobile app
• Differences from web
• Mobile device constraints and benefits
• Android
• Live coding an app from scratch
Mobile Apps
•   Lots of us carry small
    computers around with
    us

•   Software development
    kits allow anyone to
    write apps for these
    devices

•   Some great ... some erm.

•   Easy distribution through
    AppStores
Ask the Hoff
•   I did the Android port of
    this iPhone app by
    Never Odd or Even LLP

•   Shake your phone for
    wisdom from DH

•   Featured on Radio 1

•   Available on AppStore
    and Market - 59p
Next Metro
•   We’ve put the Metro
    timetable inside your
    Android or iPhone

•   Tells you how long the
    next train at your stop
    will be

•   Updated from web
    service when online

•   With Never Odd. In
    discussions with Nexus
How to write an app

• Decide which device(s) to target
• Download, learn and use the SDK
• Test your code on an emulator
• Publish
• Watch the money roll in
What’s in an SDK?
• Libraries
• IDE integration (Eclipse, XCode)
• Frameworks
• Simulators / Emulators
• Utilities
• Documentation
Differences to web
• Less of everything - speed, network,
  storage, memory & screen real estate
• Event driven (Flash, Desktop)
• Threading
• Crash means the process dies
• No cross browser differences :)
 • Cross device differences though :(
• APIs can and do change
Be efficient
• Think about battery life
• Bad code - device turns into a hand
  warmer
• App must be a good multitasking citizen
• Offload data crunching to a server
• Assume networks are slow / transient
 • Recover gracefully. Don’t hang.
Remember
• Emulator can be much faster than device
• Phone models vary in speed and spec
• Avoid object creation, reuse UI widgets
• static, int vs Integer, [ ] vs List<T>, getters...
• Load things only when you need them
• Careful with compressed media
• Watch application size (192MB on Android)
Android
• A mobile operating system
• Uses a modified Linux kernel
• Not a Linux distro
• Apps are written in Java
• Apps don’t run as Java - Dalvik VM
• Open source: vendors customise it
Android stack
Why Android?

• Range of Android devices / vendors
• Rich SDK - free to download and use
• Available for Mac, Windows and Linux
• Low barrier to entry
 • Java widely used; easy for C# devs
 • iPhone very Mac centric
SDKs FTW
• Fantastic building blocks ... leverage
• Rich library of UI controls and widgets
• WebKit
• SQLite3 relational database engine
• Maps
• OpenGL
• Hardware: Compass, GPS, Accelerometer
Android Tools
• Eclipse 3.5 with Android Developer Tools
• Well supported and feature rich IDE
• UI design
• Debugging
• Testing
• Deploy to emulator and device (via USB)
• Publishing and signing wizards
Jargon
• Apps consist of at least one screen or
  Activity
• Activities are linked via Intents
• Services are faceless and run indefinitely
• Content providers make your app’s data
  available to other apps
    • content://org.yourapp/people/Alex
Live coding demo

• We’re going to construct an app that plays
  a sound when you press a button
• Not a Java tutorial
• Just to give you an idea
• But by all means ask later or email me
Sad Trombone
• Every office needs this app!
• Add a button
• Add code so it responds to clicks
• Attach code to play a sound
• Fix some bugs
• Deploy it to a device
Any questions?

Más contenido relacionado

La actualidad más candente

Xamarin iBeacon Mini-hack using Estimote iBeacons
Xamarin iBeacon Mini-hack using Estimote iBeaconsXamarin iBeacon Mini-hack using Estimote iBeacons
Xamarin iBeacon Mini-hack using Estimote iBeaconsJim Bennett
 
Using Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YMLUsing Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YMLAdam_Talcott
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Frameworkrrjohnson85
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overviewSanket Devlekar
 
Technology management
Technology managementTechnology management
Technology managementMansi Kadlag
 
Intro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular jsIntro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular jsHector Iribarne
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentrohithn
 
Powerpoint
PowerpointPowerpoint
Powerpointlissyh
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notesjaxarcsig
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Jeff Haynie
 
Mobile that works for your library
Mobile that works for your libraryMobile that works for your library
Mobile that works for your libraryJeff Wisniewski
 
Mobile performance testing
Mobile performance testingMobile performance testing
Mobile performance testinghunz
 
X-platform iBeacon apps with Xamarin
X-platform iBeacon apps with XamarinX-platform iBeacon apps with Xamarin
X-platform iBeacon apps with XamarinMark Radacz
 

La actualidad más candente (20)

monkeyTalk
monkeyTalkmonkeyTalk
monkeyTalk
 
Lick my Lollipop
Lick my LollipopLick my Lollipop
Lick my Lollipop
 
Xamarin iBeacon Mini-hack using Estimote iBeacons
Xamarin iBeacon Mini-hack using Estimote iBeaconsXamarin iBeacon Mini-hack using Estimote iBeacons
Xamarin iBeacon Mini-hack using Estimote iBeacons
 
WWDC 2017
WWDC 2017WWDC 2017
WWDC 2017
 
Using Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YMLUsing Defensive Pessimism to Build Great Software at YML
Using Defensive Pessimism to Build Great Software at YML
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Framework
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overview
 
Technology management
Technology managementTechnology management
Technology management
 
Intro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular jsIntro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular js
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Powerpoint
PowerpointPowerpoint
Powerpoint
 
Enterprise iPad Development Without Notes
Enterprise iPad Development Without NotesEnterprise iPad Development Without Notes
Enterprise iPad Development Without Notes
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Corona
CoronaCorona
Corona
 
what new in ios 11
what new in ios 11what new in ios 11
what new in ios 11
 
Mobile that works for your library
Mobile that works for your libraryMobile that works for your library
Mobile that works for your library
 
Mobile performance testing
Mobile performance testingMobile performance testing
Mobile performance testing
 
Android vs iOS
Android vs iOSAndroid vs iOS
Android vs iOS
 
X-platform iBeacon apps with Xamarin
X-platform iBeacon apps with XamarinX-platform iBeacon apps with Xamarin
X-platform iBeacon apps with Xamarin
 
Sencha touch
Sencha touchSencha touch
Sencha touch
 

Similar a Development of a mobile app for Android

Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application developmentsaritasingh19866
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Indiginox
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentsaritasingh19866
 
MobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxMobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxsanaiftikhar23
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1NAILBITER
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopmentPrabhat gangwar
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.DataArt
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting SmallAndrew Smith
 
Mobile Development
Mobile DevelopmentMobile Development
Mobile DevelopmentAlan Uthoff
 
Top Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxTop Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxGokulKanna18
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentDataArt
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptxSuman Garai
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?Reto Meier
 

Similar a Development of a mobile app for Android (20)

Synapse india reviews on mobile application development
Synapse india reviews on mobile application developmentSynapse india reviews on mobile application development
Synapse india reviews on mobile application development
 
Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?Why Do Mobile Projects Fail?
Why Do Mobile Projects Fail?
 
Synapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps developmentSynapse india reviews on cross plateform mobile apps development
Synapse india reviews on cross plateform mobile apps development
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
MobApp development 01 application platform.pptx
MobApp development 01 application platform.pptxMobApp development 01 application platform.pptx
MobApp development 01 application platform.pptx
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
 
Android Presentation
Android PresentationAndroid Presentation
Android Presentation
 
Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.Никита Корчагин - Introduction to Apple iOS Development.
Никита Корчагин - Introduction to Apple iOS Development.
 
Future of Mobile
Future of MobileFuture of Mobile
Future of Mobile
 
Multiplatform
MultiplatformMultiplatform
Multiplatform
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
Consider Starting Small
Consider Starting SmallConsider Starting Small
Consider Starting Small
 
Mobile Development
Mobile DevelopmentMobile Development
Mobile Development
 
Top Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptxTop Technologies to Develop Mobile Apps.pptx
Top Technologies to Develop Mobile Apps.pptx
 
Никита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS developmentНикита Корчагин - Introduction to iOS development
Никита Корчагин - Introduction to iOS development
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?HTML5 or Android for Mobile Development?
HTML5 or Android for Mobile Development?
 

Último

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Último (20)

SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Development of a mobile app for Android

  • 1. Development of a mobile app for Android Alex Reid SuperMondays, February 2010
  • 2. Alex Reid • Sorry, not the cage fighter • I’m a software developer • Lead development of a projects database here at the University since 2006. • Mobile development • Android mainly but also iPhone and BB
  • 3. Content • Overview of mobile apps • How you write a mobile app • Differences from web • Mobile device constraints and benefits • Android • Live coding an app from scratch
  • 4. Mobile Apps • Lots of us carry small computers around with us • Software development kits allow anyone to write apps for these devices • Some great ... some erm. • Easy distribution through AppStores
  • 5. Ask the Hoff • I did the Android port of this iPhone app by Never Odd or Even LLP • Shake your phone for wisdom from DH • Featured on Radio 1 • Available on AppStore and Market - 59p
  • 6. Next Metro • We’ve put the Metro timetable inside your Android or iPhone • Tells you how long the next train at your stop will be • Updated from web service when online • With Never Odd. In discussions with Nexus
  • 7. How to write an app • Decide which device(s) to target • Download, learn and use the SDK • Test your code on an emulator • Publish • Watch the money roll in
  • 8. What’s in an SDK? • Libraries • IDE integration (Eclipse, XCode) • Frameworks • Simulators / Emulators • Utilities • Documentation
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Differences to web • Less of everything - speed, network, storage, memory & screen real estate • Event driven (Flash, Desktop) • Threading • Crash means the process dies • No cross browser differences :) • Cross device differences though :( • APIs can and do change
  • 14. Be efficient • Think about battery life • Bad code - device turns into a hand warmer • App must be a good multitasking citizen • Offload data crunching to a server • Assume networks are slow / transient • Recover gracefully. Don’t hang.
  • 15. Remember • Emulator can be much faster than device • Phone models vary in speed and spec • Avoid object creation, reuse UI widgets • static, int vs Integer, [ ] vs List<T>, getters... • Load things only when you need them • Careful with compressed media • Watch application size (192MB on Android)
  • 16. Android • A mobile operating system • Uses a modified Linux kernel • Not a Linux distro • Apps are written in Java • Apps don’t run as Java - Dalvik VM • Open source: vendors customise it
  • 18. Why Android? • Range of Android devices / vendors • Rich SDK - free to download and use • Available for Mac, Windows and Linux • Low barrier to entry • Java widely used; easy for C# devs • iPhone very Mac centric
  • 19. SDKs FTW • Fantastic building blocks ... leverage • Rich library of UI controls and widgets • WebKit • SQLite3 relational database engine • Maps • OpenGL • Hardware: Compass, GPS, Accelerometer
  • 20. Android Tools • Eclipse 3.5 with Android Developer Tools • Well supported and feature rich IDE • UI design • Debugging • Testing • Deploy to emulator and device (via USB) • Publishing and signing wizards
  • 21. Jargon • Apps consist of at least one screen or Activity • Activities are linked via Intents • Services are faceless and run indefinitely • Content providers make your app’s data available to other apps • content://org.yourapp/people/Alex
  • 22. Live coding demo • We’re going to construct an app that plays a sound when you press a button • Not a Java tutorial • Just to give you an idea • But by all means ask later or email me
  • 23. Sad Trombone • Every office needs this app! • Add a button • Add code so it responds to clicks • Attach code to play a sound • Fix some bugs • Deploy it to a device