Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Mobile Software Development @ FH-Kapfenberg 04.12.2013

538 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Mobile Software Development @ FH-Kapfenberg 04.12.2013

  1. 1. Mobile Software Development
  2. 2. Portfolio
  3. 3. Topics • GIT • Continuous Integration • Testing & Deployment • Android Build System
  4. 4. GIT
  5. 5. GIT • Distributed version control system • Initial release 07.04.2005 • Strong support for non-linear development • Efficient handling of large projects • Toolkit-based design
  6. 6. GIT • Pros: • Speed • Work offline • Branching and tagging • Customizable
  7. 7. GIT • Git objects:
  8. 8. GIT • Create new branch: $ git branch testing
  9. 9. GIT • Checkout branch: $ git checkout testing
  10. 10. GIT • Merge branch: $ git merge testing
  11. 11. GIT • Workflow:
  12. 12. Continuous Integration
  13. 13. Continuous Integration • Extreme Programming (XP) • Test-Driven Development (TDD) • Prevent integration problems • Continuous builds • Automate distribution
  14. 14. Continuous Integration
  15. 15. Extreme Programming • Short development cycles • High frequent releases • Pair programming • Flat management structure • Good structured code
  16. 16. Test-Driven Development Add a test Run tests see 
 new failure Write some code Refactor Run tests 
 see all pass
  17. 17. Jenkins • Open Source (http://jenkins-ci.org) • Supports several build tools (Gradle, LLMV, …) • Used in organizations (Facebook, Yahoo, Dell, …) • Easy installation • Plugin support
  18. 18. Jenkins
  19. 19. Bots • Build, analyze and test apps • Need OSX Server 10.9 (XCode Service) • GIT & SVN support • Build & test statistics (GUI) • Manage Bots via Log Navigator or Web Browser
  20. 20. Bots
  21. 21. Testing & Deployment
  22. 22. Test levels • Unit testing • Integration testing • System testing • Acceptance testing (Beta Tests)
  23. 23. Unit Tests • Test the result not the implementation (Compare result with specification) • White-Box-Test • n * functions == n * tests • Method could contain bugs • Prevent new issues
  24. 24. Alpha & Beta Testing • Alpha Testing: • • Tested by potential users or test team • • Internal user acceptance test Should be done before beta testing Beta Testing: • External user acceptance test
  25. 25. TestFlight • Free service • Distributing apps for Adhoc-Testing • Supports Android, iOS and Windows • Supervise testers • Own SDK to monitor app performance
  26. 26. Crittercism • Free service / Subscription plans • Monitor live app performance • Collect crashlogs and evaluate them • Github issue integration
  27. 27. Google Analytics • Live statistics from where the app is running • Track usage to optimize further releases • Gather device information • Custom variables available • Can track crashes and exceptions
  28. 28. Google Analytics Kärnten Card iOS App, 19.06. - 30.09.2013
  29. 29. Android Build System

×