SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
St. Pölten University of Applied SciencesSt. Pölten University of Applied Sciences
Platzhalter für möglichen
Bildeinsatz
Android Development with Kotlin, Part 3
Code & App Management
Andreas Jakl
Digital Healthcare
FH St. Pölten
Platzhalter für möglichen
Bildeinsatz
Version 1.2
Andreas Jakl
▪ Focus areas
▪ AR / VR, mobile apps, sensors, interaction
technology, software architecture, open source
developer (NFC, Bluetooth Beacons)
▪ Microsoft MVP (Most Valuable Professional)
▪ mobility.builders community: Mobile Developer
After-Work Events
▪ Previous Experience
▪ Tieto, Start-up (Mopius), Nokia (Finland),
Siemens Mobile (Munich), FH Hagenberg
(Mobile Computing)
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten
https://www.andreasjakl.com/
@andijakl
andreas.jakl@fhstp.ac.at
2
Contents
▪ Code Management
▪ Open Source
▪ Version Control & Git
▪ App Stores
▪ Testing Mobile Apps
▪ Automated Tests
▪ Visual Studio App Center
▪ Espresso Test Recorder
▪ Firebase Test Lab
▪ Robo Tests
▪ App Distribution
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 3
CODE MANAGEMENT
Licenses and Collaboration
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 4
Source Code Licenses
▪ Copyright
▪ Automatically applies to code you write
▪ You retain all rights
▪ https://choosealicense.com/no-license/
▪ Custom License
▪ Provide & sell software under your own terms
▪ Example: Windows 10: https://www.microsoft.com/en-
us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm
▪ But: difficult for other companies to use
▪ Would need to do a legal check of your license
▪ What happens if your company is closed?
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 5
©
Software Patents
▪ Europe
▪ Source code by itself not patentable (only copyright)
▪ But: broader “computer implemented inventions” that
solves a technical problem in a
“novel or non-obvious manner”
▪ US
▪ Generally patentable
▪ But do not necessarily “win” if challenged in court and not concrete enough
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 6
Source: https://fsfe.org/campaigns/swpat/swpat.en.html
https://en.wikipedia.org/wiki/Software_patents_under_the_European_Patent_Convention
https://www.epo.org/news-issues/issues/software.html
https://en.wikipedia.org/wiki/Software_patents_under_United_States_patent_law
Open Source
▪ Software must be:
▪ Freely used
▪ Modified
▪ Shared
▪ Licenses
▪ Approved licenses by OSI: https://opensource.org/licenses
▪ Choose a license: https://choosealicense.com/
▪ Most popular: GPL, Apache, MIT
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 7
Image source: Open Source Initiative by Simon Phipps, CC BY 2.5
https://en.wikipedia.org/wiki/File:Opensource.svg
Version Control & Collaboration
▪ Advantages
▪ Teams & Collaboration
▪ Tracking changes & history
▪ Branches for stable release +
development
▪ Most popular:
▪ Git
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 8Source: https://www.openhub.net/repositories/compare
Git Basics
▪ Store finished changes with “commit”s
▪ Default “Master” branch for main version
▪ “HEAD” = current version
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 9
commit commit commit
HEAD of master branch
Git Basics
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 10
working
directory
index
(stage)
HEAD
add commit
Some Git clients simplify and do this in one step
Git Basics
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 11
working
directory
index
(stage)
HEAD
add commit
your PC server
HEAD
push
pull
Using GIT
▪ GIT Tools
▪ Windows, Mac, Linux
▪ Optional: more powerful user interfaces
▪ TortoiseGit – great Windows Explorer integration: https://tortoisegit.org/
▪ GitHub Desktop – https://desktop.github.com/
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 12
Hosting GIT Repositories
▪ Online services for collaboration
▪ GitHub: free for open source projects
▪ GitLab: install GIT on own server (free)
▪ Visual Studio Team Services
▪ Free for 5 users + MSDN subscribers, also for closed source projects
▪ Includes agile project planning, DevOps (automated testing &
deployment)
▪ https://www.visualstudio.com/team-services/
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 13
Create / Clone Git Repository
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 14
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 15
Git versioning:
History, contributors & changes
(GitHub Desktop app)
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 16
Git versioning:
Reviewing your code changes before committing
(GitHub Desktop app)
APPS & USER EXPERIENCE
How to bring the technology to your customers?
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 17
App Stores Are Merciless
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 18
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 19
Source: App Annie, Record Levels of App Downloads & App Store Consumer Spend in Q4 2017
https://www.appannie.com/en/insights/market-data/app-downloads-consumer-spend-q4-2017/
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 20
Source: App Annie, Record Levels of App Downloads & App Store Consumer Spend in Q4 2017
https://www.appannie.com/en/insights/market-data/app-downloads-consumer-spend-q4-2017/
„Within 3 days, an app
loses 77% of its users“
@andrewchen New data shows losing 80% of mobile users is normal, and why the best apps do better
http://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 21
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 22
Source: Android, & Apple, & Google, & Microsoft, & AppBrain, & BlackBerry, & Various sources
(WindowsCentral.com, & International Games Week Berlin), & Amazon, & VentureBeat, &
CNET. (n.d.). Number of apps available in leading app stores as of March 2017. In Statista - The
Statistics Portal. Retrieved January 27, 2018, from
https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/.
Flurry: Enter the Matrix: App Retention and Engagement
http://flurrymobile.tumblr.com/post/144245637325/appmatrixAndroid Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 23
Your Fate lies in the
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 24
App Reviews
Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store. Carnegie Mellon University, 2013. Data from 13 million user reviews, 171,439 apps
Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013
Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014
Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014
0
2 000 000
4 000 000
6 000 000
8 000 000
Downloads
Negative reviews
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten25
Reviews vs Downloads
Review count & rating correlate to downloads
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 26
Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store.
Carnegie Mellon University, 2013
Data from 13 million user reviews, 171,439 apps
Average rating: 3.9
(standard deviation: 1.48)
0
2 000 000
4 000 000
6 000 000
8 000 000
Review Analysis
▪ Analysis
▪ Most frequent complaints
▪ Functional errors
▪ Feature requests
▪ App crashes
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 27
Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013
Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014
Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014
Review Analysis
▪ Analysis
▪ Most negative impact
▪ Privacy and ethical issues
▪ Hidden app costs
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 28
Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013
Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014
Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014
TESTING STRATEGIES
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 29
Thousands of Mobile Devices in Use
http://opensignal.com/reports/2015/08/android-fragmentation/
http://stats.unity3d.com/mobile/device-ios.html
OpenSignal: 24,000 distinct Android
devices used their app in 2015
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 30
Capturing Crash Data
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 31
Monitoring Reviews
Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store.
Carnegie Mellon University, 2013
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 32
Static Code Analysis
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 33
Emulator / Simulator
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 34
Emulator
Emulates real
hardware
+ more accurate
– slow
Android
Simulator
Simulates device
behavior
+ faster
– less accurate
iOS / Windows
Reliable?
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 35
0%of your users will run your app on an emulator
Automated UI Tests
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 36
How many tests can you run per hour / build / release?
Automated UI Tests
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 37
Number of builds
Cost
Automated tests
Manual tests
Own Devices
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 38
How many test devices do you have?
Visual Studio App Center
▪ Automated tests
▪ UI interaction
▪ Device features (GPS, etc)
▪ Performance
▪ 3,300+ devices
▪ Android & iOS
▪ http://appcenter.ms/signup
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 39
Workflow
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 40
+ Continuous Integration
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 41
Executing Tests
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 42
Android App Testing
▪ Local JUnit test (test)
▪ Minimize execution time
▪ No Android framework dependencies
▪ Instrumented test, runs on device (androidTest)
▪ Lets you control your running app
▪ Automate user interaction (UI tests)
▪ Overview: https://developer.android.com/studio/test/index.html
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 43
Exercise: Espresso Test Recorder
▪ Open HelloWorld or GreetingApp solution project
▪ Record UI interactions
▪ Run > Record Espresso Test
▪ Execute tests:
▪ Right-click MainActivityTest > Run
▪ Further steps
▪ Change app so that it fails the test
▪ Add EditText to app, test entering text
▪ Update TextView with user-entered text
▪ Manually extend test script to check if user-entered text appears
▪ https://developer.android.com/studio/test/espresso-test-recorder.html
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 44
Firebase Test Lab
▪ Real devices in Google data center
▪ https://firebase.google.com/docs/test-lab/
▪ Robo test
▪ Explores UI structure
▪ Automatically simulates user activities
▪ Optional: robo scripts for more control
▪ Scripted tests
▪ Using Espresso
▪ Reports
▪ Video, screenshots, device logs, performance, crash logs
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 45
Image credits: Google,
https://firebase.google.com/docs/test-lab/
Exercise: Run Tests in the Cloud
▪ Tools > Firebase > Test Lab >
Run Firebase Test Lab for Android
▪ Connect your app to Firebase
▪ Billing plan
▪ Spark = free: daily quota,
10 virtual tests / day,
5 physical tests / day
▪ Run test configuration
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 46
Exercise: Firebase Console
▪ Check test report: Firebase console
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 47
Exercise: Robo Test
▪ Run Robo test from Firebase Console
▪ Upload APK:
▪ <project>appbuildoutputsapkdebug
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 48
Developing & Maintaining Apps
is a Challenge!
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 49
App Purge
Apple:
- Purged 47,300 apps in October 2016
(14,000 apps / month purged on average)
- 2017: 180,000+ apps not compatible with iOS 11
(64 bit now required)
Sensor Tower: Worldwide iOS App Store App Removals Increased 238% in October
https://sensortower.com/blog/app-store-purge
Nearly 200,000 Current Apps Could Be Incompatible with iOS 11
https://sensortower.com/blog/ios-11-incompatible-apps
Dr. Windows: Bereinigung des Windows Store noch nicht abgeschlossen - nur noch ein Drittel aller Apps übrig
http://www.drwindows.de/content/11332-bereinigung-windows-store-noch-abgeschlossen-nur-noch.html
Google Android Developers Blog: How we fought bad apps and malicious developers in 2017
https://android-developers.googleblog.com/2018/01/how-we-fought-bad-apps-and-malicious.html
Microsoft:
- 2/3 of all apps purged between Oct – Nov 2016
(330k -> 125k)
… but we still have 3 million apps only for the iPhone.
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten
Google:
- 2017: took down 700,000 apps that violated Google Play policies
50
How to Survive.
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 51
There is Hope!
Tune: No, Americans do not install an average of zero apps per month
https://www.tune.com/blog/no-the-average-american-does-not-download-0-apps-each-month/
The true number ist most likely even higher: 2 – 3 app installs / month
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 52
APP DISTRIBUTION
Payments, Fees and Certificates
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 53
App Store Overview
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 54Source: https://en.wikipedia.org/wiki/List_of_mobile_app_distribution_platforms
Apps 2,800,000 2,200,000 669,000 600,000
Fee $25 (1x) $99 / year $0 (1x, student)
$19 (1x, individual)
$99 (1x, company)
$0
Cut per sale
(from net)
70% 56 – 71% (depends
on country)
70%
(85% for app
subscriptions)
70%
Google Play Store
▪ Prerequisites:
▪ Google Account
▪ Credit card ($25 fee)
▪ Sign-Up:
▪ Developer name
▪ Email Address
▪ Website
▪ Phone Number
▪ Instant activation
▪ Optional further steps
▪ Invite Co-Workers
▪ Set up merchant account for paid apps
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 55
Quality Guidelines
▪ Checklist
▪ Quality criteria & associated tests
▪ Work through tests, especially for 1st app
▪ https://developer.android.com/develop/quality-
guidelines/index.html
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 56
App Signing
▪ All APKs digitally signed
▪ Android Studio: Debug certificate
▪ Automatically generated:
C:Users<name>.androiddebug.keystore
▪ Not trusted for publishing to the Play Store
▪ Certificate valid for 365 days
▪ https://developer.android.com/studio/publish/app-signing.html
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 57
App Publishing
▪ App signing key
▪ Needed for updates!
▪ Google Play App Signing OR manual app signing
▪ https://support.google.com/googleplay/android-developer/answer/7384423
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 58
THANK YOU!
Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 59

Mais conteúdo relacionado

Mais procurados

Android Jetpack - What's new
Android Jetpack - What's newAndroid Jetpack - What's new
Android Jetpack - What's newAhmad Arif Faizin
 
DominoPoint June 2012 OpenNTF
DominoPoint June 2012 OpenNTFDominoPoint June 2012 OpenNTF
DominoPoint June 2012 OpenNTFNiklas Heidloff
 
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...Niklas Heidloff
 
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...Niklas Heidloff
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
 
LuminAR - Poster
LuminAR - PosterLuminAR - Poster
LuminAR - PosterSean Young
 
Snowplow - Analytics & Data Rollout at Seven
Snowplow - Analytics & Data Rollout at SevenSnowplow - Analytics & Data Rollout at Seven
Snowplow - Analytics & Data Rollout at SevenLuke Lewandowski
 
Kotlin vs Flutter: The Battle of Platforms
Kotlin vs Flutter: The Battle of PlatformsKotlin vs Flutter: The Battle of Platforms
Kotlin vs Flutter: The Battle of PlatformsIT Outsourcing China
 
Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Natalia Efimtseva
 
Real world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVMReal world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVMGill Cleeren
 
Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011Kenneth van Rumste
 

Mais procurados (13)

Android Jetpack - What's new
Android Jetpack - What's newAndroid Jetpack - What's new
Android Jetpack - What's new
 
DominoPoint June 2012 OpenNTF
DominoPoint June 2012 OpenNTFDominoPoint June 2012 OpenNTF
DominoPoint June 2012 OpenNTF
 
Kotlin in industry
Kotlin in industryKotlin in industry
Kotlin in industry
 
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...
IBM Connect 2013 - BP212: Apps, Apps and more Apps: Meet the Very Best Open S...
 
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...
BP207 Lotusphere 2011 - Apps, Apps, and More Apps: Meet the Very Best Open So...
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
 
LuminAR - Poster
LuminAR - PosterLuminAR - Poster
LuminAR - Poster
 
Snowplow - Analytics & Data Rollout at Seven
Snowplow - Analytics & Data Rollout at SevenSnowplow - Analytics & Data Rollout at Seven
Snowplow - Analytics & Data Rollout at Seven
 
Kotlin vs Flutter: The Battle of Platforms
Kotlin vs Flutter: The Battle of PlatformsKotlin vs Flutter: The Battle of Platforms
Kotlin vs Flutter: The Battle of Platforms
 
Newleaks
NewleaksNewleaks
Newleaks
 
Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)Mobile backends with Google Cloud Platform (MBLTDev'14)
Mobile backends with Google Cloud Platform (MBLTDev'14)
 
Real world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVMReal world apps with Xamarin and MVVM
Real world apps with Xamarin and MVVM
 
Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011
 

Semelhante a Android Development with Kotlin, Part 3 - Code and App Management

Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012
Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012
Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012Massimo Menichinelli
 
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Paolo Nesi
 
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn..."How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...Eurapp
 
Citizen Participation - Case Study on Participatory Apps in Germany
Citizen Participation - Case Study on Participatory Apps in GermanyCitizen Participation - Case Study on Participatory Apps in Germany
Citizen Participation - Case Study on Participatory Apps in GermanyTobias Siebenlist
 
IRJET- Approaching Highlights and Security issues in Software Engineering...
IRJET-  	  Approaching Highlights and Security issues in Software Engineering...IRJET-  	  Approaching Highlights and Security issues in Software Engineering...
IRJET- Approaching Highlights and Security issues in Software Engineering...IRJET Journal
 
Join in Google Opensocail
Join in Google OpensocailJoin in Google Opensocail
Join in Google Opensocailcassey1123
 
Developing Sleek and Collaborative Applications with OpenSocial and AJAX Push
Developing Sleek and Collaborative Applications with OpenSocial and AJAX PushDeveloping Sleek and Collaborative Applications with OpenSocial and AJAX Push
Developing Sleek and Collaborative Applications with OpenSocial and AJAX PushChris Schalk
 
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsSnap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsPaolo Nesi
 
1021 smap01 social media apps programming
1021 smap01 social media apps programming1021 smap01 social media apps programming
1021 smap01 social media apps programmingimyday
 
AGILE - Adoptive Gateways for dIverse MuLtiple Environments
AGILE -  Adoptive Gateways for dIverse MuLtiple EnvironmentsAGILE -  Adoptive Gateways for dIverse MuLtiple Environments
AGILE - Adoptive Gateways for dIverse MuLtiple EnvironmentsAGILE IoT
 
Adoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple EnvironmentsAdoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple EnvironmentsCharalampos Doukas
 
College app for android device
College app for android deviceCollege app for android device
College app for android device8759000398
 
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...AIRCC Publishing Corporation
 
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...ijcsit
 

Semelhante a Android Development with Kotlin, Part 3 - Code and App Management (20)

Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012
Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012
Come scalare progetti di Design autoprodotto @ Operae Torino.09.11.2012
 
unX_App Inventor MOOC
unX_App Inventor MOOCunX_App Inventor MOOC
unX_App Inventor MOOC
 
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
Snap4City November 2019 Course: Smart City IOT platform installation, deploy,...
 
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn..."How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
"How Can Web Devs Reach the Mobile Market?" by Dimitris Michalakos, Web Techn...
 
Citizen Participation - Case Study on Participatory Apps in Germany
Citizen Participation - Case Study on Participatory Apps in GermanyCitizen Participation - Case Study on Participatory Apps in Germany
Citizen Participation - Case Study on Participatory Apps in Germany
 
HOBBIT Project Overview @ ESWC HOBBIT Workshop
HOBBIT Project Overview @ ESWC HOBBIT WorkshopHOBBIT Project Overview @ ESWC HOBBIT Workshop
HOBBIT Project Overview @ ESWC HOBBIT Workshop
 
IRJET- Approaching Highlights and Security issues in Software Engineering...
IRJET-  	  Approaching Highlights and Security issues in Software Engineering...IRJET-  	  Approaching Highlights and Security issues in Software Engineering...
IRJET- Approaching Highlights and Security issues in Software Engineering...
 
Join in Google Opensocail
Join in Google OpensocailJoin in Google Opensocail
Join in Google Opensocail
 
Vinit Deliwala Resume
Vinit Deliwala ResumeVinit Deliwala Resume
Vinit Deliwala Resume
 
Developing Sleek and Collaborative Applications with OpenSocial and AJAX Push
Developing Sleek and Collaborative Applications with OpenSocial and AJAX PushDeveloping Sleek and Collaborative Applications with OpenSocial and AJAX Push
Developing Sleek and Collaborative Applications with OpenSocial and AJAX Push
 
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT ApplicationsSnap4City November 2019 Course: Smart City IOT development of IOT Applications
Snap4City November 2019 Course: Smart City IOT development of IOT Applications
 
1021 smap01 social media apps programming
1021 smap01 social media apps programming1021 smap01 social media apps programming
1021 smap01 social media apps programming
 
Nagendran resume
Nagendran resumeNagendran resume
Nagendran resume
 
AGILE - Adoptive Gateways for dIverse MuLtiple Environments
AGILE -  Adoptive Gateways for dIverse MuLtiple EnvironmentsAGILE -  Adoptive Gateways for dIverse MuLtiple Environments
AGILE - Adoptive Gateways for dIverse MuLtiple Environments
 
Adoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple EnvironmentsAdoptive Gateways for dIverse MuLtiple Environments
Adoptive Gateways for dIverse MuLtiple Environments
 
College app for android device
College app for android deviceCollege app for android device
College app for android device
 
Resume jyoti gupta
Resume jyoti guptaResume jyoti gupta
Resume jyoti gupta
 
IRJET- Techhubb
IRJET-  	  TechhubbIRJET-  	  Techhubb
IRJET- Techhubb
 
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
 
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
DATA-DRIVEN MODEL FOR NON-FUNCTIONAL REQUIREMENTS IN MOBILE APPLICATION DEVEL...
 

Mais de Andreas Jakl

Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreBluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreAndreas Jakl
 
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Andreas Jakl
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test AutomationAndreas Jakl
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Andreas Jakl
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneAndreas Jakl
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingAndreas Jakl
 
Windows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartWindows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartAndreas Jakl
 
Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosAndreas Jakl
 
Windows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentWindows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentAndreas Jakl
 
NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)Andreas Jakl
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt CommunicationAndreas Jakl
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and GraphicsAndreas Jakl
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI DevelopmentAndreas Jakl
 
Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Andreas Jakl
 
Java ME - Introduction
Java ME - IntroductionJava ME - Introduction
Java ME - IntroductionAndreas Jakl
 
Intro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceIntro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceAndreas Jakl
 
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Andreas Jakl
 
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Andreas Jakl
 

Mais de Andreas Jakl (20)

Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & MoreBluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
Bluetooth Beacons - Bluetooth 5, iBeacon, Eddystone, Arduino, Windows 10 & More
 
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
Which new scenarios are enabled by Windows 10 for NFC, Bluetooth LE & Beacons?
 
Mobile Test Automation
Mobile Test AutomationMobile Test Automation
Mobile Test Automation
 
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
Qt App Development - Cross-Platform Development for Android, iOS, Windows Pho...
 
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows PhoneWinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
WinJS, Apache Cordova & NFC - HTML5 apps for Android and Windows Phone
 
Nokia New Asha Platform Developer Training
Nokia New Asha Platform Developer TrainingNokia New Asha Platform Developer Training
Nokia New Asha Platform Developer Training
 
Windows Phone 8 NFC Quickstart
Windows Phone 8 NFC QuickstartWindows Phone 8 NFC Quickstart
Windows Phone 8 NFC Quickstart
 
Windows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App ScenariosWindows (Phone) 8 NFC App Scenarios
Windows (Phone) 8 NFC App Scenarios
 
Windows 8 Platform NFC Development
Windows 8 Platform NFC DevelopmentWindows 8 Platform NFC Development
Windows 8 Platform NFC Development
 
NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)NFC Development with Qt - v2.2.0 (5. November 2012)
NFC Development with Qt - v2.2.0 (5. November 2012)
 
06 - Qt Communication
06 - Qt Communication06 - Qt Communication
06 - Qt Communication
 
05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics05 - Qt External Interaction and Graphics
05 - Qt External Interaction and Graphics
 
04 - Qt Data
04 - Qt Data04 - Qt Data
04 - Qt Data
 
03 - Qt UI Development
03 - Qt UI Development03 - Qt UI Development
03 - Qt UI Development
 
02 - Basics of Qt
02 - Basics of Qt02 - Basics of Qt
02 - Basics of Qt
 
Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)Basics of WRT (Web Runtime)
Basics of WRT (Web Runtime)
 
Java ME - Introduction
Java ME - IntroductionJava ME - Introduction
Java ME - Introduction
 
Intro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User ExperienceIntro - Forum Nokia & Mobile User Experience
Intro - Forum Nokia & Mobile User Experience
 
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
Quickstart: Qt for Windows, Symbian and Maemo / Meego v2.0.8 (January 10th, 2...
 
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
Qt App Development for Symbian & MeeGo - v3.4.6 (17. January 2012)
 

Último

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 

Último (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Android Development with Kotlin, Part 3 - Code and App Management

  • 1. St. Pölten University of Applied SciencesSt. Pölten University of Applied Sciences Platzhalter für möglichen Bildeinsatz Android Development with Kotlin, Part 3 Code & App Management Andreas Jakl Digital Healthcare FH St. Pölten Platzhalter für möglichen Bildeinsatz Version 1.2
  • 2. Andreas Jakl ▪ Focus areas ▪ AR / VR, mobile apps, sensors, interaction technology, software architecture, open source developer (NFC, Bluetooth Beacons) ▪ Microsoft MVP (Most Valuable Professional) ▪ mobility.builders community: Mobile Developer After-Work Events ▪ Previous Experience ▪ Tieto, Start-up (Mopius), Nokia (Finland), Siemens Mobile (Munich), FH Hagenberg (Mobile Computing) Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten https://www.andreasjakl.com/ @andijakl andreas.jakl@fhstp.ac.at 2
  • 3. Contents ▪ Code Management ▪ Open Source ▪ Version Control & Git ▪ App Stores ▪ Testing Mobile Apps ▪ Automated Tests ▪ Visual Studio App Center ▪ Espresso Test Recorder ▪ Firebase Test Lab ▪ Robo Tests ▪ App Distribution Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 3
  • 4. CODE MANAGEMENT Licenses and Collaboration Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 4
  • 5. Source Code Licenses ▪ Copyright ▪ Automatically applies to code you write ▪ You retain all rights ▪ https://choosealicense.com/no-license/ ▪ Custom License ▪ Provide & sell software under your own terms ▪ Example: Windows 10: https://www.microsoft.com/en- us/Useterms/Retail/Windows/10/UseTerms_Retail_Windows_10_English.htm ▪ But: difficult for other companies to use ▪ Would need to do a legal check of your license ▪ What happens if your company is closed? Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 5 ©
  • 6. Software Patents ▪ Europe ▪ Source code by itself not patentable (only copyright) ▪ But: broader “computer implemented inventions” that solves a technical problem in a “novel or non-obvious manner” ▪ US ▪ Generally patentable ▪ But do not necessarily “win” if challenged in court and not concrete enough Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 6 Source: https://fsfe.org/campaigns/swpat/swpat.en.html https://en.wikipedia.org/wiki/Software_patents_under_the_European_Patent_Convention https://www.epo.org/news-issues/issues/software.html https://en.wikipedia.org/wiki/Software_patents_under_United_States_patent_law
  • 7. Open Source ▪ Software must be: ▪ Freely used ▪ Modified ▪ Shared ▪ Licenses ▪ Approved licenses by OSI: https://opensource.org/licenses ▪ Choose a license: https://choosealicense.com/ ▪ Most popular: GPL, Apache, MIT Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 7 Image source: Open Source Initiative by Simon Phipps, CC BY 2.5 https://en.wikipedia.org/wiki/File:Opensource.svg
  • 8. Version Control & Collaboration ▪ Advantages ▪ Teams & Collaboration ▪ Tracking changes & history ▪ Branches for stable release + development ▪ Most popular: ▪ Git Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 8Source: https://www.openhub.net/repositories/compare
  • 9. Git Basics ▪ Store finished changes with “commit”s ▪ Default “Master” branch for main version ▪ “HEAD” = current version Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 9 commit commit commit HEAD of master branch
  • 10. Git Basics Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 10 working directory index (stage) HEAD add commit Some Git clients simplify and do this in one step
  • 11. Git Basics Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 11 working directory index (stage) HEAD add commit your PC server HEAD push pull
  • 12. Using GIT ▪ GIT Tools ▪ Windows, Mac, Linux ▪ Optional: more powerful user interfaces ▪ TortoiseGit – great Windows Explorer integration: https://tortoisegit.org/ ▪ GitHub Desktop – https://desktop.github.com/ Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 12
  • 13. Hosting GIT Repositories ▪ Online services for collaboration ▪ GitHub: free for open source projects ▪ GitLab: install GIT on own server (free) ▪ Visual Studio Team Services ▪ Free for 5 users + MSDN subscribers, also for closed source projects ▪ Includes agile project planning, DevOps (automated testing & deployment) ▪ https://www.visualstudio.com/team-services/ Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 13
  • 14. Create / Clone Git Repository Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 14
  • 15. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 15 Git versioning: History, contributors & changes (GitHub Desktop app)
  • 16. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 16 Git versioning: Reviewing your code changes before committing (GitHub Desktop app)
  • 17. APPS & USER EXPERIENCE How to bring the technology to your customers? Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 17
  • 18. App Stores Are Merciless Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 18
  • 19. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 19 Source: App Annie, Record Levels of App Downloads & App Store Consumer Spend in Q4 2017 https://www.appannie.com/en/insights/market-data/app-downloads-consumer-spend-q4-2017/
  • 20. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 20 Source: App Annie, Record Levels of App Downloads & App Store Consumer Spend in Q4 2017 https://www.appannie.com/en/insights/market-data/app-downloads-consumer-spend-q4-2017/
  • 21. „Within 3 days, an app loses 77% of its users“ @andrewchen New data shows losing 80% of mobile users is normal, and why the best apps do better http://andrewchen.co/new-data-shows-why-losing-80-of-your-mobile-users-is-normal-and-that-the-best-apps-do-much-better/Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 21
  • 22. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 22 Source: Android, & Apple, & Google, & Microsoft, & AppBrain, & BlackBerry, & Various sources (WindowsCentral.com, & International Games Week Berlin), & Amazon, & VentureBeat, & CNET. (n.d.). Number of apps available in leading app stores as of March 2017. In Statista - The Statistics Portal. Retrieved January 27, 2018, from https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/.
  • 23. Flurry: Enter the Matrix: App Retention and Engagement http://flurrymobile.tumblr.com/post/144245637325/appmatrixAndroid Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 23
  • 24. Your Fate lies in the Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 24
  • 25. App Reviews Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store. Carnegie Mellon University, 2013. Data from 13 million user reviews, 171,439 apps Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013 Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014 Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014 0 2 000 000 4 000 000 6 000 000 8 000 000 Downloads Negative reviews Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten25
  • 26. Reviews vs Downloads Review count & rating correlate to downloads Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 26 Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store. Carnegie Mellon University, 2013 Data from 13 million user reviews, 171,439 apps Average rating: 3.9 (standard deviation: 1.48) 0 2 000 000 4 000 000 6 000 000 8 000 000
  • 27. Review Analysis ▪ Analysis ▪ Most frequent complaints ▪ Functional errors ▪ Feature requests ▪ App crashes Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 27 Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013 Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014 Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014
  • 28. Review Analysis ▪ Analysis ▪ Most negative impact ▪ Privacy and ethical issues ▪ Hidden app costs Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 28 Claudia Iacob, Rachel Harrison: “Retrieving and Analysing Mobile Apps Feature Requests from Online Reviews”, Oxford Brookes University, 2013 Kahlid. H, et al.: “What Do Mobile App Users Complain About? A Study on Free iOS Apps”, Queen’s University, Kingston, 2014 Gunwoong Leea, T. S. Raghua: “Determinants of Mobile Apps' Success: Evidence from the App Store Market”, 2014
  • 29. TESTING STRATEGIES Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 29
  • 30. Thousands of Mobile Devices in Use http://opensignal.com/reports/2015/08/android-fragmentation/ http://stats.unity3d.com/mobile/device-ios.html OpenSignal: 24,000 distinct Android devices used their app in 2015 Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 30
  • 31. Capturing Crash Data Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 31
  • 32. Monitoring Reviews Bin Lu, et al.: Why People Hate Your App – Making Sense of User Feedback in a Mobile App Store. Carnegie Mellon University, 2013 Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 32
  • 33. Static Code Analysis Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 33
  • 34. Emulator / Simulator Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 34 Emulator Emulates real hardware + more accurate – slow Android Simulator Simulates device behavior + faster – less accurate iOS / Windows
  • 35. Reliable? Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 35 0%of your users will run your app on an emulator
  • 36. Automated UI Tests Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 36 How many tests can you run per hour / build / release?
  • 37. Automated UI Tests Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 37 Number of builds Cost Automated tests Manual tests
  • 38. Own Devices Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 38 How many test devices do you have?
  • 39. Visual Studio App Center ▪ Automated tests ▪ UI interaction ▪ Device features (GPS, etc) ▪ Performance ▪ 3,300+ devices ▪ Android & iOS ▪ http://appcenter.ms/signup Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 39
  • 40. Workflow Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 40
  • 41. + Continuous Integration Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 41
  • 42. Executing Tests Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 42
  • 43. Android App Testing ▪ Local JUnit test (test) ▪ Minimize execution time ▪ No Android framework dependencies ▪ Instrumented test, runs on device (androidTest) ▪ Lets you control your running app ▪ Automate user interaction (UI tests) ▪ Overview: https://developer.android.com/studio/test/index.html Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 43
  • 44. Exercise: Espresso Test Recorder ▪ Open HelloWorld or GreetingApp solution project ▪ Record UI interactions ▪ Run > Record Espresso Test ▪ Execute tests: ▪ Right-click MainActivityTest > Run ▪ Further steps ▪ Change app so that it fails the test ▪ Add EditText to app, test entering text ▪ Update TextView with user-entered text ▪ Manually extend test script to check if user-entered text appears ▪ https://developer.android.com/studio/test/espresso-test-recorder.html Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 44
  • 45. Firebase Test Lab ▪ Real devices in Google data center ▪ https://firebase.google.com/docs/test-lab/ ▪ Robo test ▪ Explores UI structure ▪ Automatically simulates user activities ▪ Optional: robo scripts for more control ▪ Scripted tests ▪ Using Espresso ▪ Reports ▪ Video, screenshots, device logs, performance, crash logs Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 45 Image credits: Google, https://firebase.google.com/docs/test-lab/
  • 46. Exercise: Run Tests in the Cloud ▪ Tools > Firebase > Test Lab > Run Firebase Test Lab for Android ▪ Connect your app to Firebase ▪ Billing plan ▪ Spark = free: daily quota, 10 virtual tests / day, 5 physical tests / day ▪ Run test configuration Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 46
  • 47. Exercise: Firebase Console ▪ Check test report: Firebase console Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 47
  • 48. Exercise: Robo Test ▪ Run Robo test from Firebase Console ▪ Upload APK: ▪ <project>appbuildoutputsapkdebug Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 48
  • 49. Developing & Maintaining Apps is a Challenge! Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 49
  • 50. App Purge Apple: - Purged 47,300 apps in October 2016 (14,000 apps / month purged on average) - 2017: 180,000+ apps not compatible with iOS 11 (64 bit now required) Sensor Tower: Worldwide iOS App Store App Removals Increased 238% in October https://sensortower.com/blog/app-store-purge Nearly 200,000 Current Apps Could Be Incompatible with iOS 11 https://sensortower.com/blog/ios-11-incompatible-apps Dr. Windows: Bereinigung des Windows Store noch nicht abgeschlossen - nur noch ein Drittel aller Apps übrig http://www.drwindows.de/content/11332-bereinigung-windows-store-noch-abgeschlossen-nur-noch.html Google Android Developers Blog: How we fought bad apps and malicious developers in 2017 https://android-developers.googleblog.com/2018/01/how-we-fought-bad-apps-and-malicious.html Microsoft: - 2/3 of all apps purged between Oct – Nov 2016 (330k -> 125k) … but we still have 3 million apps only for the iPhone. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten Google: - 2017: took down 700,000 apps that violated Google Play policies 50
  • 51. How to Survive. Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 51
  • 52. There is Hope! Tune: No, Americans do not install an average of zero apps per month https://www.tune.com/blog/no-the-average-american-does-not-download-0-apps-each-month/ The true number ist most likely even higher: 2 – 3 app installs / month Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 52
  • 53. APP DISTRIBUTION Payments, Fees and Certificates Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 53
  • 54. App Store Overview Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 54Source: https://en.wikipedia.org/wiki/List_of_mobile_app_distribution_platforms Apps 2,800,000 2,200,000 669,000 600,000 Fee $25 (1x) $99 / year $0 (1x, student) $19 (1x, individual) $99 (1x, company) $0 Cut per sale (from net) 70% 56 – 71% (depends on country) 70% (85% for app subscriptions) 70%
  • 55. Google Play Store ▪ Prerequisites: ▪ Google Account ▪ Credit card ($25 fee) ▪ Sign-Up: ▪ Developer name ▪ Email Address ▪ Website ▪ Phone Number ▪ Instant activation ▪ Optional further steps ▪ Invite Co-Workers ▪ Set up merchant account for paid apps Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 55
  • 56. Quality Guidelines ▪ Checklist ▪ Quality criteria & associated tests ▪ Work through tests, especially for 1st app ▪ https://developer.android.com/develop/quality- guidelines/index.html Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 56
  • 57. App Signing ▪ All APKs digitally signed ▪ Android Studio: Debug certificate ▪ Automatically generated: C:Users<name>.androiddebug.keystore ▪ Not trusted for publishing to the Play Store ▪ Certificate valid for 365 days ▪ https://developer.android.com/studio/publish/app-signing.html Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 57
  • 58. App Publishing ▪ App signing key ▪ Needed for updates! ▪ Google Play App Signing OR manual app signing ▪ https://support.google.com/googleplay/android-developer/answer/7384423 Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 58
  • 59. THANK YOU! Android Development with Kotlin, Part 3 | 2018 | Andreas Jakl | FH St. Pölten 59