SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
Mobile Development
                       Tools and Practices
                             Arnaud Héritier
                              eXo Platform
                               @aheritier




Wednesday, December 14, 11
Our Motivation
                   •         Observations
                        •     eXo Mobile division had many difficulties to
                              stabilize applications (build failures,
                              dependencies to the development
                              environment ...),
                        •     Functional and technical feedbacks were very
                              limited because the deployment/update
                              process was complex for testers / early
                              adopters.


Wednesday, December 14, 11
Our Motivation
                   •         Prescription
                        •      Continuous build and deployment of mobile
                               applications (iOS, Android)
                              •   to speedup the feedback loop
                              •   to increase the number of testers / early
                                  adopters
                              •   to increase the quality and the stability of
                                  these applications.


Wednesday, December 14, 11
Our Motivation


                   • CI wasn't easy to setup the first time,
                             especially for iOS. The experience is worth
                             being shared.




Wednesday, December 14, 11
Webinar Schedule

                   • The development environment
                   • Setup the continuous integration
                   • Setup the continuous deployment


Wednesday, December 14, 11
Environment overview
Wednesday, December 14, 11
The Development
                        Environment for iOS


Wednesday, December 14, 11
iOS Development
                                 Toolbox

                   • Xcode
                    • http://developer.apple.com/xcode/


Wednesday, December 14, 11
Setup a Development
                     Environment for iOS
                   • Apple documentation
                    • http://goo.gl/Ge13t
                   • The most important part is to register your
                             Apple developer account and to correctly
                             set your code signing identity



Wednesday, December 14, 11
Certificates
Wednesday, December 14, 11
Provisioning
Wednesday, December 14, 11
Setup a
               Development
              Environment for
                    iOS
          The developer can spend the
         major part of the day in Xcode
         and the emulator as long as the
         code is regularly committed in
                    the SCM




Wednesday, December 14, 11
The Development
                              Environment for
                                  Android


Wednesday, December 14, 11
Android Development
                         Toolbox
                   •     Java JDK
                        • http://www.oracle.com/technetwork/java/javase/downloads/index.html
                   •     Android SDK
                        •      http://developer.android.com/sdk
                   •         Eclipse 3.7 IDE for Java Developers
                        •      http://eclipse.org
                   •         Apache Maven
                        •      http://maven.apache.org/


Wednesday, December 14, 11
Setup a Development
               Environment for Android
                   •         Installation
                        •       Java JDK
                        •       Android SDK
                               •    Don’t forget to set the ANDROID_HOME environment variable
                        •       Maven 3.0.3 min
                               •    Required by the 3.0 version of the android plugin
                        •       Eclipse
                               •    Use Java Developers edition with its Maven integration (m2e)
                               •    Don’t forget to configure your Maven and ADT paths in eclipse
                                    settings.




Wednesday, December 14, 11
Maven
       installation path
       to use in eclipse




Wednesday, December 14, 11
ADK
       installation path
       to use in eclipse




Wednesday, December 14, 11
Maven POM for an
                              Android Project
                   • Packaging = apk
                   • Uses the plugin
                             com.jayway.maven.plugins.android.generatio
                             n2:android-maven-plugin
                        • version 3.0.0 min
                        • manifest-update goal bound to the phase
                              process-resources


Wednesday, December 14, 11
Setup a Development
               Environment for Android
                   •         Just import your Maven/APK project in eclipse with m2e.
                        •       M2e and its market place will automatically install and
                                configure the Android extension in eclipse
                        •       You’ll be able to manage your project dependencies with
                                Apache Maven
                        •       You don’t have to explicitly use Maven in your development
                                process. M2e does the necessary to hide it.
                   •         Manage your Android project with Apache Maven
                        •       http://www.sonatype.com/books/mvnref-book/reference/
                                android-dev.html
                        •       http://code.google.com/p/maven-android-plugin/



Wednesday, December 14, 11
Maven POM for
         an android
           project




Wednesday, December 14, 11
Setup a
               Development
              Environment for
                  Android
          The developer can spend the
         major part of the day in Eclipse
         and the emulator as long as the
         code is regularly committed in
                    the SCM




Wednesday, December 14, 11
Continuous Integration
                     Environment


Wednesday, December 14, 11
Continuous Integration
                        Toolbox
                   •         Jenkins
                        •       http://jenkins-ci.org/
                   •         Java JDK
                        •       http://www.oracle.com/technetwork/java/javase/downloads/index.html


                   •         Android SDK
                        •       http://developer.android.com/sdk
                   •         Apache Maven
                        •       http://maven.apache.org/
                   •         Xcode
                        •       http://developer.apple.com/xcode/



Wednesday, December 14, 11
Continuous Integration
                        for iOS
                   • Jenkins with the Xcode plugin
                    • https://wiki.jenkins-ci.org/display/
                               JENKINS/Xcode+Plugin
                   • Requires a MacOS platform to build (using
                             a Jenkins agent if necessary)



Wednesday, December 14, 11
Continuous Integration
                        for iOS
                   •         Configure the environment where build will be run
                             as a development environment (Xcode +
                             certificates)
                   •         Connect your Jenkins Server to an iOS agent :
                        •      Use a dedicated user account on the agent host,
                        •      Allow Remote Login (Sharing preferences) on the
                               agent to connect to it using SSH,
                        •      Configure an SSH key on the Server that you will
                               authorize on the agent (~/.ssh/authorized_keys)


Wednesday, December 14, 11
Dedicated account for Jenkins agent
                        on Macos X host
Wednesday, December 14, 11
Activate Remote Login (aka SSH)
Wednesday, December 14, 11
Continuous Integration
                        for iOS
                   •     Create a freestyle job in
                         jenkins with an Xcode
                         Build Step

                        •    Ask to build the IPA

                        •    Configure it to unlock
                             the login keychain

                        •    Use build variables to
                             generate a unique
                             technical version


Wednesday, December 14, 11
Continuous Integration
                        for iOS
                   •     “User interaction
                         is not allowed”
                         error returned while
                         signing your binary ?

                        •    Launch one time
                             manually the build on
                             the agent to validate
                             permanently the
                             access to the keychain
                             for the process
                             “codesign”


Wednesday, December 14, 11
Continuous Integration
                      for Android
                   •         Install an Android SDK on all agents where the
                             android job can be launched
                   •         Configure in Jenkins
                        •      JDK 1.6+
                        •      Apache Maven 3.0.3+
                        •      ANDROID_HOME environment variable or define
                               the property android.sdk.path in a profile
                               activated from maven settings.xml
                               configuration file.


Wednesday, December 14, 11
Continuous Integration
                      for Android
                   • Create a Maven Job
                   • Use the property
                             “android.manifest.versionCode”
                             to inject a unique version number in the
                             application Manifest




Wednesday, December 14, 11
Continuous
                             Deployment
                             Environment


Wednesday, December 14, 11
Continuous
                       Deployment Toolbox
                        • Jenkins
                         • http://jenkins-ci.org/
                        • Appaloosa Store
                         • http://appaloosa-store.com

Wednesday, December 14, 11
Private Store
                        • Appaloosa allow you to manage a private
                             store for Android or iOS devices
                        • Even if our applications are deployed in
                             public app-stores after the release we
                             rely on a private app-store to easily
                             deploy tests versions to our QA or our
                             early adopters.


Wednesday, December 14, 11
Continuous Deployment
                   with Appaloosa
                   •         Install the appaloosa plugin in Jenkins
                        •       https://wiki.jenkins-ci.org/display/JENKINS/Appaloosa
                                +Plugin
                   •         Get the organization token in the administration panel of your
                             appaloosa store
                   •         Create a private store for each system : One for iOS and one
                             for Android
                   •         Configure in each job a post build task to deploy binaries
                        •       **/*.ipa for the iOS build
                        •       **/target/*(-aligned).apk for the android build



Wednesday, December 14, 11
Continuous Deployment
                   with Appaloosa
                   •     Check your emails and
                         install the Appaloosa
                         Store App or open the
                         website on your mobile.

                   •     Both of them will warn
                         you about the availability
                         of a new version of your
                         application.

                   •     Just install/update it



Wednesday, December 14, 11
FULL SCENARIO



Wednesday, December 14, 11
FULL SCENARIO
Wednesday, December 14, 11
iOS development
Wednesday, December 14, 11
Jenkins plugins
Wednesday, December 14, 11
Xcode build configuration in Jenkins
                           for iOS jobs
Wednesday, December 14, 11
Post-build configuration for iOS Jobs
                            in Jenkins
Wednesday, December 14, 11
Let’s launch the iOS jobbuild
Wednesday, December 14, 11
iOS build output
Wednesday, December 14, 11
iOS post-build output
Wednesday, December 14, 11
iOS job page
Wednesday, December 14, 11
We receive a
          notification
        from Appaloosa
                 (using the private store
                       application)




Wednesday, December 14, 11
Notification sticker
       on our Appaloosa
           store app




Wednesday, December 14, 11
In the application
         detail screen we
       can see the update




Wednesday, December 14, 11
Application
            installation or
                update




Wednesday, December 14, 11
Application
            installation or
                update




Wednesday, December 14, 11
It’s ready !




Wednesday, December 14, 11
Enjoy




Wednesday, December 14, 11
Q/A ?



Wednesday, December 14, 11

Weitere ähnliche Inhalte

Was ist angesagt?

Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopmentPrabhat gangwar
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions newJoe Jacob
 
Videogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchVideogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchAlexander Wilhelm
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvmdfages
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with SpringRoy Clarkson
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Acquia
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5Roy Clarkson
 
The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)Thomas Krause
 
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
 
Web QA Gaia/B2G/Firefox OS front-end automation
Web QA Gaia/B2G/Firefox OS front-end automationWeb QA Gaia/B2G/Firefox OS front-end automation
Web QA Gaia/B2G/Firefox OS front-end automationStephen Donner
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me ToolsJussi Pohjolainen
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenArnaud Héritier
 
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsBackwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsCommonsWare
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenArnaud Héritier
 
GR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme RocherGR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme RocherGR8Conf
 
Lausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenLausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenArnaud Héritier
 

Was ist angesagt? (19)

Android Programming
Android ProgrammingAndroid Programming
Android Programming
 
Cross platform mobile application devlopment
Cross platform mobile application devlopmentCross platform mobile application devlopment
Cross platform mobile application devlopment
 
Introduction to android sessions new
Introduction to android   sessions newIntroduction to android   sessions new
Introduction to android sessions new
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Videogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha TouchVideogram - Building a product with Sencha Touch
Videogram - Building a product with Sencha Touch
 
Droidcon uk2012 androvm
Droidcon uk2012 androvmDroidcon uk2012 androvm
Droidcon uk2012 androvm
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with Spring
 
Updating Your Website to Drupal 7
Updating Your Website to Drupal 7Updating Your Website to Drupal 7
Updating Your Website to Drupal 7
 
Mobile Web Development with HTML5
Mobile Web Development with HTML5Mobile Web Development with HTML5
Mobile Web Development with HTML5
 
The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)The Forgotten Customer (Socrates 2011)
The Forgotten Customer (Socrates 2011)
 
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
 
Web QA Gaia/B2G/Firefox OS front-end automation
Web QA Gaia/B2G/Firefox OS front-end automationWeb QA Gaia/B2G/Firefox OS front-end automation
Web QA Gaia/B2G/Firefox OS front-end automation
 
Installing And Configuring Java Me Tools
Installing And Configuring Java Me ToolsInstalling And Configuring Java Me Tools
Installing And Configuring Java Me Tools
 
Alpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache MavenAlpes Jug (29th March, 2010) - Apache Maven
Alpes Jug (29th March, 2010) - Apache Maven
 
Android session-1-sajib
Android session-1-sajibAndroid session-1-sajib
Android session-1-sajib
 
Backwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and TacticsBackwards Compatibility: Strategies and Tactics
Backwards Compatibility: Strategies and Tactics
 
Geneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - MavenGeneva Jug (30th March, 2010) - Maven
Geneva Jug (30th March, 2010) - Maven
 
GR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme RocherGR8Conf 2009. The Grails Plugin System by Graeme Rocher
GR8Conf 2009. The Grails Plugin System by Graeme Rocher
 
Lausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - MavenLausanne Jug (08th April, 2010) - Maven
Lausanne Jug (08th April, 2010) - Maven
 

Andere mochten auch

Deployment and distribution- iOS
Deployment and distribution- iOSDeployment and distribution- iOS
Deployment and distribution- iOSSuraj B
 
Continuous Integration & deployment for your Xamarin app
Continuous Integration & deployment for your Xamarin appContinuous Integration & deployment for your Xamarin app
Continuous Integration & deployment for your Xamarin appGerald Versluis
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsSarath C
 
iOS App Development Presented by Edifyself
iOS App Development Presented by EdifyselfiOS App Development Presented by Edifyself
iOS App Development Presented by EdifyselfEdifyself
 
iOS App Development Predictions 2017
iOS App Development Predictions 2017iOS App Development Predictions 2017
iOS App Development Predictions 2017Nestweaver
 
Apple Inc Presentatioin
Apple Inc PresentatioinApple Inc Presentatioin
Apple Inc Presentatioin2AM
 

Andere mochten auch (6)

Deployment and distribution- iOS
Deployment and distribution- iOSDeployment and distribution- iOS
Deployment and distribution- iOS
 
Continuous Integration & deployment for your Xamarin app
Continuous Integration & deployment for your Xamarin appContinuous Integration & deployment for your Xamarin app
Continuous Integration & deployment for your Xamarin app
 
Fastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS AppsFastlane - Automation and Continuous Delivery for iOS Apps
Fastlane - Automation and Continuous Delivery for iOS Apps
 
iOS App Development Presented by Edifyself
iOS App Development Presented by EdifyselfiOS App Development Presented by Edifyself
iOS App Development Presented by Edifyself
 
iOS App Development Predictions 2017
iOS App Development Predictions 2017iOS App Development Predictions 2017
iOS App Development Predictions 2017
 
Apple Inc Presentatioin
Apple Inc PresentatioinApple Inc Presentatioin
Apple Inc Presentatioin
 

Ähnlich wie Mobile developments at eXo

Android Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesAndroid Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesGerard
 
Project a day 2 introduction to android studio
Project a day 2   introduction to android studioProject a day 2   introduction to android studio
Project a day 2 introduction to android studioGoran Djonovic
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devopsEvans Ye
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...Edureka!
 
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDev
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDevTriple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDev
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDevWerner Keil
 
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...Developing a Hybrid Application Management and Deployment Strategy to JBoss a...
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...XebiaLabs
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Ryan Cuprak
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learnedrajeevdayal
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins CloudBees
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsXebiaLabs
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
 
02 configuration
02   configuration02   configuration
02 configurationdarwinodb
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)Stephen Chin
 
Ii 1300-java essentials for android
Ii 1300-java essentials for androidIi 1300-java essentials for android
Ii 1300-java essentials for androidAdrian Mikeliunas
 
Docker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBMDocker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBMDocker, Inc.
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 

Ähnlich wie Mobile developments at eXo (20)

Android Development Primer - GDG Los Angeles
Android Development Primer - GDG Los AngelesAndroid Development Primer - GDG Los Angeles
Android Development Primer - GDG Los Angeles
 
Project a day 2 introduction to android studio
Project a day 2   introduction to android studioProject a day 2   introduction to android studio
Project a day 2 introduction to android studio
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Fits docker into devops
Fits docker into devopsFits docker into devops
Fits docker into devops
 
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
What is Docker | Docker Tutorial for Beginners | Docker Container | DevOps To...
 
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDev
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDevTriple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDev
Triple-E’class Continuous Delivery with Hudson, Maven, Kokki and PyDev
 
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...Developing a Hybrid Application Management and Deployment Strategy to JBoss a...
Developing a Hybrid Application Management and Deployment Strategy to JBoss a...
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Building GPE: What We Learned
Building GPE: What We LearnedBuilding GPE: What We Learned
Building GPE: What We Learned
 
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
Automated Testing and Continuous Deployment for Mobile Apps with Jenkins
 
JUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with JenkinsJUC NY - Advanced Continuous Deployment with Jenkins
JUC NY - Advanced Continuous Deployment with Jenkins
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...
 
Why to docker
Why to dockerWhy to docker
Why to docker
 
02 configuration
02   configuration02   configuration
02 configuration
 
JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)JavaFX on Mobile (by Johan Vos)
JavaFX on Mobile (by Johan Vos)
 
Ii 1300-java essentials for android
Ii 1300-java essentials for androidIi 1300-java essentials for android
Ii 1300-java essentials for android
 
Docker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBMDocker for Devs - John Zaccone, IBM
Docker for Devs - John Zaccone, IBM
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 

Mehr von Arnaud Héritier

Devops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMADevops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMAArnaud Héritier
 
Java is evolving rapidly: Maven helps you staying on track
Java is evolving rapidly:  Maven helps you staying on trackJava is evolving rapidly:  Maven helps you staying on track
Java is evolving rapidly: Maven helps you staying on trackArnaud Héritier
 
Quand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsQuand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsArnaud Héritier
 
Sonar In Action 20110302-vn
Sonar In Action 20110302-vnSonar In Action 20110302-vn
Sonar In Action 20110302-vnArnaud Héritier
 
2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory OverviewArnaud Héritier
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieArnaud Héritier
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkinsArnaud Héritier
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory OverviewArnaud Héritier
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentationArnaud Héritier
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsArnaud Héritier
 
ToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
YaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promisesYaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
BordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promisesBordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
ToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promisesToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promisesArnaud Héritier
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationArnaud Héritier
 
LyonJUG - Maven 3.x, will it live up to its promises?
LyonJUG - Maven 3.x, will it live up to its promises?LyonJUG - Maven 3.x, will it live up to its promises?
LyonJUG - Maven 3.x, will it live up to its promises?Arnaud Héritier
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenArnaud Héritier
 
Riviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenRiviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenArnaud Héritier
 

Mehr von Arnaud Héritier (20)

Devops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMADevops Recto-Verso @ DevoxxMA
Devops Recto-Verso @ DevoxxMA
 
Java is evolving rapidly: Maven helps you staying on track
Java is evolving rapidly:  Maven helps you staying on trackJava is evolving rapidly:  Maven helps you staying on track
Java is evolving rapidly: Maven helps you staying on track
 
Quand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les railsQuand java prend de la vitesse, apache maven vous garde sur les rails
Quand java prend de la vitesse, apache maven vous garde sur les rails
 
Sonar In Action 20110302-vn
Sonar In Action 20110302-vnSonar In Action 20110302-vn
Sonar In Action 20110302-vn
 
2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview2014 August - eXo Software Factory Overview
2014 August - eXo Software Factory Overview
 
CRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - QuickieCRaSH @ JUGSummerCamp 2012 - Quickie
CRaSH @ JUGSummerCamp 2012 - Quickie
 
LavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promisesLavaJUG-Maven 3.x, will it lives up to its promises
LavaJUG-Maven 3.x, will it lives up to its promises
 
Hands on iOS developments with jenkins
Hands on iOS developments with jenkinsHands on iOS developments with jenkins
Hands on iOS developments with jenkins
 
eXo Software Factory Overview
eXo Software Factory OvervieweXo Software Factory Overview
eXo Software Factory Overview
 
Apache Maven - eXo TN presentation
Apache Maven - eXo TN presentationApache Maven - eXo TN presentation
Apache Maven - eXo TN presentation
 
Jenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of JenkinsJenkins User Meetup - eXo usages of Jenkins
Jenkins User Meetup - eXo usages of Jenkins
 
ToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promisesToursJUG-Maven 3.x, will it lives up to its promises
ToursJUG-Maven 3.x, will it lives up to its promises
 
YaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promisesYaJUG-Maven 3.x, will it lives up to its promises
YaJUG-Maven 3.x, will it lives up to its promises
 
BordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promisesBordeauxJUG-Maven 3.x, will it lives up to its promises
BordeauxJUG-Maven 3.x, will it lives up to its promises
 
ToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promisesToulouseJUG-Maven 3.x, will it lives up to its promises
ToulouseJUG-Maven 3.x, will it lives up to its promises
 
Apache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentationApache Maven - eXo VN office presentation
Apache Maven - eXo VN office presentation
 
LyonJUG - Maven 3.x, will it live up to its promises?
LyonJUG - Maven 3.x, will it live up to its promises?LyonJUG - Maven 3.x, will it live up to its promises?
LyonJUG - Maven 3.x, will it live up to its promises?
 
Lorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - MavenLorraine JUG (1st June, 2010) - Maven
Lorraine JUG (1st June, 2010) - Maven
 
Riviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - MavenRiviera JUG (20th April, 2010) - Maven
Riviera JUG (20th April, 2010) - Maven
 
Maven for eXo VN
Maven for eXo VNMaven for eXo VN
Maven for eXo VN
 

Kürzlich hochgeladen

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

Mobile developments at eXo

  • 1. Mobile Development Tools and Practices Arnaud Héritier eXo Platform @aheritier Wednesday, December 14, 11
  • 2. Our Motivation • Observations • eXo Mobile division had many difficulties to stabilize applications (build failures, dependencies to the development environment ...), • Functional and technical feedbacks were very limited because the deployment/update process was complex for testers / early adopters. Wednesday, December 14, 11
  • 3. Our Motivation • Prescription • Continuous build and deployment of mobile applications (iOS, Android) • to speedup the feedback loop • to increase the number of testers / early adopters • to increase the quality and the stability of these applications. Wednesday, December 14, 11
  • 4. Our Motivation • CI wasn't easy to setup the first time, especially for iOS. The experience is worth being shared. Wednesday, December 14, 11
  • 5. Webinar Schedule • The development environment • Setup the continuous integration • Setup the continuous deployment Wednesday, December 14, 11
  • 7. The Development Environment for iOS Wednesday, December 14, 11
  • 8. iOS Development Toolbox • Xcode • http://developer.apple.com/xcode/ Wednesday, December 14, 11
  • 9. Setup a Development Environment for iOS • Apple documentation • http://goo.gl/Ge13t • The most important part is to register your Apple developer account and to correctly set your code signing identity Wednesday, December 14, 11
  • 12. Setup a Development Environment for iOS The developer can spend the major part of the day in Xcode and the emulator as long as the code is regularly committed in the SCM Wednesday, December 14, 11
  • 13. The Development Environment for Android Wednesday, December 14, 11
  • 14. Android Development Toolbox • Java JDK • http://www.oracle.com/technetwork/java/javase/downloads/index.html • Android SDK • http://developer.android.com/sdk • Eclipse 3.7 IDE for Java Developers • http://eclipse.org • Apache Maven • http://maven.apache.org/ Wednesday, December 14, 11
  • 15. Setup a Development Environment for Android • Installation • Java JDK • Android SDK • Don’t forget to set the ANDROID_HOME environment variable • Maven 3.0.3 min • Required by the 3.0 version of the android plugin • Eclipse • Use Java Developers edition with its Maven integration (m2e) • Don’t forget to configure your Maven and ADT paths in eclipse settings. Wednesday, December 14, 11
  • 16. Maven installation path to use in eclipse Wednesday, December 14, 11
  • 17. ADK installation path to use in eclipse Wednesday, December 14, 11
  • 18. Maven POM for an Android Project • Packaging = apk • Uses the plugin com.jayway.maven.plugins.android.generatio n2:android-maven-plugin • version 3.0.0 min • manifest-update goal bound to the phase process-resources Wednesday, December 14, 11
  • 19. Setup a Development Environment for Android • Just import your Maven/APK project in eclipse with m2e. • M2e and its market place will automatically install and configure the Android extension in eclipse • You’ll be able to manage your project dependencies with Apache Maven • You don’t have to explicitly use Maven in your development process. M2e does the necessary to hide it. • Manage your Android project with Apache Maven • http://www.sonatype.com/books/mvnref-book/reference/ android-dev.html • http://code.google.com/p/maven-android-plugin/ Wednesday, December 14, 11
  • 20. Maven POM for an android project Wednesday, December 14, 11
  • 21. Setup a Development Environment for Android The developer can spend the major part of the day in Eclipse and the emulator as long as the code is regularly committed in the SCM Wednesday, December 14, 11
  • 22. Continuous Integration Environment Wednesday, December 14, 11
  • 23. Continuous Integration Toolbox • Jenkins • http://jenkins-ci.org/ • Java JDK • http://www.oracle.com/technetwork/java/javase/downloads/index.html • Android SDK • http://developer.android.com/sdk • Apache Maven • http://maven.apache.org/ • Xcode • http://developer.apple.com/xcode/ Wednesday, December 14, 11
  • 24. Continuous Integration for iOS • Jenkins with the Xcode plugin • https://wiki.jenkins-ci.org/display/ JENKINS/Xcode+Plugin • Requires a MacOS platform to build (using a Jenkins agent if necessary) Wednesday, December 14, 11
  • 25. Continuous Integration for iOS • Configure the environment where build will be run as a development environment (Xcode + certificates) • Connect your Jenkins Server to an iOS agent : • Use a dedicated user account on the agent host, • Allow Remote Login (Sharing preferences) on the agent to connect to it using SSH, • Configure an SSH key on the Server that you will authorize on the agent (~/.ssh/authorized_keys) Wednesday, December 14, 11
  • 26. Dedicated account for Jenkins agent on Macos X host Wednesday, December 14, 11
  • 27. Activate Remote Login (aka SSH) Wednesday, December 14, 11
  • 28. Continuous Integration for iOS • Create a freestyle job in jenkins with an Xcode Build Step • Ask to build the IPA • Configure it to unlock the login keychain • Use build variables to generate a unique technical version Wednesday, December 14, 11
  • 29. Continuous Integration for iOS • “User interaction is not allowed” error returned while signing your binary ? • Launch one time manually the build on the agent to validate permanently the access to the keychain for the process “codesign” Wednesday, December 14, 11
  • 30. Continuous Integration for Android • Install an Android SDK on all agents where the android job can be launched • Configure in Jenkins • JDK 1.6+ • Apache Maven 3.0.3+ • ANDROID_HOME environment variable or define the property android.sdk.path in a profile activated from maven settings.xml configuration file. Wednesday, December 14, 11
  • 31. Continuous Integration for Android • Create a Maven Job • Use the property “android.manifest.versionCode” to inject a unique version number in the application Manifest Wednesday, December 14, 11
  • 32. Continuous Deployment Environment Wednesday, December 14, 11
  • 33. Continuous Deployment Toolbox • Jenkins • http://jenkins-ci.org/ • Appaloosa Store • http://appaloosa-store.com Wednesday, December 14, 11
  • 34. Private Store • Appaloosa allow you to manage a private store for Android or iOS devices • Even if our applications are deployed in public app-stores after the release we rely on a private app-store to easily deploy tests versions to our QA or our early adopters. Wednesday, December 14, 11
  • 35. Continuous Deployment with Appaloosa • Install the appaloosa plugin in Jenkins • https://wiki.jenkins-ci.org/display/JENKINS/Appaloosa +Plugin • Get the organization token in the administration panel of your appaloosa store • Create a private store for each system : One for iOS and one for Android • Configure in each job a post build task to deploy binaries • **/*.ipa for the iOS build • **/target/*(-aligned).apk for the android build Wednesday, December 14, 11
  • 36. Continuous Deployment with Appaloosa • Check your emails and install the Appaloosa Store App or open the website on your mobile. • Both of them will warn you about the availability of a new version of your application. • Just install/update it Wednesday, December 14, 11
  • 41. Xcode build configuration in Jenkins for iOS jobs Wednesday, December 14, 11
  • 42. Post-build configuration for iOS Jobs in Jenkins Wednesday, December 14, 11
  • 43. Let’s launch the iOS jobbuild Wednesday, December 14, 11
  • 44. iOS build output Wednesday, December 14, 11
  • 46. iOS job page Wednesday, December 14, 11
  • 47. We receive a notification from Appaloosa (using the private store application) Wednesday, December 14, 11
  • 48. Notification sticker on our Appaloosa store app Wednesday, December 14, 11
  • 49. In the application detail screen we can see the update Wednesday, December 14, 11
  • 50. Application installation or update Wednesday, December 14, 11
  • 51. Application installation or update Wednesday, December 14, 11
  • 52. It’s ready ! Wednesday, December 14, 11