mobile software development @ fh-kapfenberg 04.12.2013

Post on 15-May-2015

271 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mobile Software Development

Portfolio

Topics

• GIT

• Continuous Integration

• Testing & Deployment

• Android Build System

GIT

GIT• Distributed version control system

• Initial release 07.04.2005

• Strong support for non-linear development

• Efficient handling of large projects

• Toolkit-based design

GIT• Pros:

• Speed

• Work offline

• Branching and tagging

• Customizable

GIT• Git objects:

GIT• Create new branch:

$ git branch testing

GIT• Checkout branch:

$ git checkout testing

GIT• Merge branch:

$ git merge testing

GIT• Workflow:

Continuous Integration

Continuous Integration• Extreme Programming (XP)

• Test-Driven Development (TDD)

• Prevent integration problems

• Continuous builds

• Automate distribution

Continuous Integration

Extreme Programming• Short development cycles

• High frequent releases

• Pair programming

• Flat management structure

• Good structured code

Test-Driven Development

Run tests see new failure

Add a test

Write some code Run tests see all pass

Refactor

Jenkins• Open Source (http://jenkins-ci.org)

• Supports several build tools (Gradle, LLMV, …)

• Used in organizations (Facebook, Yahoo, Dell, …)

• Easy installation

• Plugin support

Jenkins

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

Bots

Testing & Deployment

• Unit testing

• Integration testing

• System testing

• Acceptance testing (Beta Tests)

Test levels

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

Alpha & Beta Testing• Alpha Testing:

• Internal user acceptance test

• Tested by potential users or test team

• Should be done before beta testing

• Beta Testing:

• External user acceptance test

TestFlight• Free service

• Distributing apps for Adhoc-Testing

• Supports Android, iOS and Windows

• Supervise testers

• Own SDK to monitor app performance

Crittercism• Free service / Subscription plans

• Monitor live app performance

• Collect crashlogs and evaluate them

• Github issue integration

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

Google AnalyticsKärnten Card iOS App, 19.06. - 30.09.2013

Android Build System

top related