Tech conf1 développement_natif_applications_mobiles

TelecomValley
TelecomValleyTelecomValley
1
Développement natif

d’applications mobiles
TechConf #1 - Telecom Valley / 4 juin 2014
Nicolas GOUTALAND (Teach on Mars) - Michael LAGUERRE (Ausy)
Question
Sous quel OS tourne votre téléphone ?
2
Une multitude d’OS mobiles
3
Introduction
Parts de marché 2Q 2013
4
Autres
4 %
Windows Phone
3 %
Android
79 %
iOS
14 %
Monde
Autres
7 %
Symbian
2 %
Android
41 %
iOS
49 %
France
Introduction
5
Evolution du trafic

websites vs applications
Evolution du trafic

websites
Introduction
6
Développement natif
• Performance
• Meilleure intégration
• Meilleur rendu
• Complexité des applications
7
Qui sommes-nous ?
Nicolas GOUTALAND
• Développement iOS depuis le premier SDK
• Plus d’une centaine d’applications
• CTO @Teach on Mars
8
Qui sommes-nous ?
Michael LAGUERRE
• Développement Android depuis 4 ans
• Une 40aine d’applications sur le PlayStore
• Expert Android @Ausy
• Enseignant @Polytech Nice Sophia et 

@IUT de Sophia en Android et IHM
9
Par où
commencer ?
10
Android developer account
• Android — https://play.google.com/apps/publish
• Un unique type de compte
• Publication sur le PlayStore
• Pas obligatoire pour développer - > publication sur site WEB
• $25 à vie
11
Prérequis
• Mac
• Création d’un Apple ID
• Choix d’une licence
12
iOS Developer Program
• 99$ (~80€) chaque année
• Licence personnelle ou entreprise
• Publication d’applications sur l’AppStore
• 100 devices de test
13
iOS Developer Enterprise Program
• 299$ (~250 €) chaque année
• Distributions d’applications internes à une entreprise (OTA)
• Pas de limites sur la distribution
14
Développer pour
Android
15
Eclipse vs Android Studio
• Eclipse
• Utilisé depuis les débuts d’Android
• Plugin ADT (Android Development Toolkit)
• Compilation : ANT
!
• Android Studio
• Introduit à la Google I/O 2013
• Encore en Developer Preview
• Basé sur la dernière version d’IntelliJ
• Compilation : Gradle
16
Eclipse
17
Android Studio
18
Android SDK
19
ADT
Hierarchy
Viewer Emulateur
draw9patch
Android SDK
• Contient :
• ADT / Librairies nécessaires au
développement d’applications
Android
• Emulateur Android / Création de
devices virtuels -AVD- de différentes
configurations hard/soft
• Hierarchy Viewer / Visualisation de
l’arborescence d’un écran
• draw9patch / Création de ressources
graphiques extensibles
20
Emulateur Android
21
Emulateur Android - Genymotion
22
10x plus rapide
que l’émulateur Android
HierarchyViewer
23
draw9patch
24
Le langage

JAVA/XML
• Langages :
• JAVA pour le code
• XML pour l’interface, les
ressources
!
• Création d’un fichier APK
!
• Développement possible sur
Windows, MacOS, Linux
!
• IDE : Eclipse, Android Studio
25
.java .xml
.APK
Le langage

JAVA/XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:paddingLeft="@dimen/activity_horizontal_margin"

android:paddingRight="@dimen/activity_horizontal_margin"

android:paddingTop="@dimen/activity_vertical_margin"

android:paddingBottom="@dimen/activity_vertical_margin">



<TextView

android:text="@string/hello_world"

android:layout_width="wrap_content"

android:layout_height="wrap_content" />



</RelativeLayout>
26
package com.example.app;



import android.app.Activity;

import android.os.Bundle;



public class MainActivity extends Activity {



@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}
}

XML
JAVA
GUI
Logique
Développer pour
iOS
27
Xcode vs AppCode
• Xcode
• IDE développé par Apple
• Gratuit
!
• AppCode
• IDE développé par JetBRAINS (IntelliJ)
• Version 3.0 disponible depuis le 20 Mai
• Payant
28
Xcode
29
AppCode
30
iOS Tools
31
Interface builder
32
Instruments
33
Reveal
34
• Objective-C
• [ ]
• Preprocesseur C
• Protocol / Category
• ARC
• Pas de NullPointerException ;)
35
Le langage

Objective-C
Le langage

Objective-C
#pragma mark - View management
- (void)viewDidLoad
{
// Hold ordered labels
_labels = @[_knownQuestionsLabel, _unknownQuestionsLabel, _didReachObjectiveLabel];
[_labels each:^(UILabel *label) {
[[StyleManager sharedInstance] configureDescriptionText:label];
}];
!
[super viewDidLoad];
!
// Localize
_scoreCaptionLabel.font = FONT_FUTURA_STD(25.0);
_userScoreLabel.font = FONT_FUTURA_HEAVY(25.0);
_scoreCaptionLabel.textColor = NORMAL_TEXT_COLOR;
_userScoreLabel.textColor = NORMAL_TEXT_COLOR;
!
// Configure title label
_titleLabel.text = LOCALIZED_STRING(@"QuizResultViewController.title");
[[StyleManager sharedInstance] configureGradientLabel:_titleLabel];
!
_scoreCaptionLabel.text = LOCALIZED_STRING(@"QuizResultViewController.yourScore.caption");
!
UPDATE_VIEW_FRAME_HEIGHT(_contentView, [ROOT_VIEW_CONTROLLER footerHeight]);
}
36
37
L’autre langage

Swift
L’autre langage

Swift
38
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var tableView : UITableView
var items:Dictionary<String,String>=["Pizza Margherita":"Tomato, mozzarella, oregano ",

"Pizza viennese":"German sausage, oregano, oil",

"Pizza capricciosa":"mushrooms, artichokes"]
func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) ->
UITableViewCell! {
var cell:myCell = self.tableView.dequeueReusableCellWithIdentifier("miaCella") as myCell
let menusPizza=Array(items.keys)
let menusingredients=Array(items.values)
!
cell.mioTesto.text = menusPizza[indexPath.row]
cell.mioSubtitle.text = menusingredients[indexPath.row];
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
performSegueWithIdentifier("miaview", sender: self.view)
println("Hai selezionato: (indexPath.row)!")
}

}
Une app mobile : 

un ensemble de
composants
39
Une application mobile, c’est :
40
Interface

graphique
Data
Réseau
Capteurs
Services OS
Google Play Services
• Ensemble d’API Google « extraites »
d’Android
• APK installé sur 99.9% des terminaux
-> réduction des effets de la
fragmentation
• Portage de nouvelles API sur les
anciennes versions d’Android
41
• Google Maps API
• Geofencing
• Fused Location Provider
• Reconnaissance d’activité
• Google Play Games API
• Google+ API
• Google Drive API
• Google Cast API
• Google Mobile Ads
• Google Wallet
• Google Cloud Messaging
• …
• … et plein d’autres à venir
Frameworks iOS
• Foundation : Classes de base (Array, Dictionary, String, Network)
• CoreData : ORM
• UIKit : Framework de composants graphiques
• CoreAnimation : Classes en charge des animations
• CoreLocation, CoreMotion : Gestion des capteurs
• et pleins d’autres encore …
42
Ressources et
liens utiles
43
44
Inspiration

http://inspired-ui.com
45
Inspiration

http://www.pttrns.com
46
Inspiration

http://capptivate.co
Tips Android

Librairies utiles
• Retrofit : Appels réseau + transformation en objets

http://square.github.io/retrofit/
• Picasso : Téléchargement des images en background

http://square.github.io/picasso/
• EventBus : Bus évènementiel de communication entre composants

https://github.com/greenrobot/EventBus
• GreenDao : ORM SQLite pour Android

http://greendao-orm.com/
• Android Asset Studio : Générateur de ressources Android

http://romannurik.github.io/AndroidAssetStudio/
47
Tips Android

Liens utiles
• http://developer.android.com/
• http://www.vogella.com/tutorials/android.html
48
Tips iOS

Librairies / outils utiles
• Alcatraz : Gestionnaire de plug-ins Xcode

http://alcatraz.io
• CocoaPods : Gestionnaire de dépendances

http://cocoapods.org/
• AFNetworking : Appels réseau

http://afnetworking.com/
• SDWebImage : Téléchargement des images en background

https://github.com/rs/SDWebImage
• Reveal : Visualisation 3D éclatée de l’interface

http://revealapp.com/
• Crashlytics : Remontée automatique de rapport de crashs

https://www.crashlytics.com
49
• www.raywenderlich.com
• www.maniacdev.com
• www.cocoacontrols.com
• https://developer.apple.com
50
Tips iOS

Liens utiles
Merci de votre attention

Des questions ?
51
?
nicolas@teachonmars.com
michael.laguerre@gmail.com
1 sur 51

Recommandé

Tech Conf n°1 - Développement natif d'applications mobiles par
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesMichael Laguerre
533 vues51 diapositives
Internet mobile : conception de sites et d'applications par
Internet mobile : conception de sites et d'applicationsInternet mobile : conception de sites et d'applications
Internet mobile : conception de sites et d'applicationsJean David Olekhnovitch
522 vues76 diapositives
Internet mobile par
Internet mobileInternet mobile
Internet mobileJean David Olekhnovitch
1.2K vues30 diapositives
Formation Android (Initiation à la programmation sous Android) par
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)G²FOSS ENIT
1.5K vues38 diapositives
Panorama des Technologies mobiles par
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
91 vues19 diapositives
Panorama des solutions mobile hybrides par
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
4.4K vues79 diapositives

Contenu connexe

Tendances

CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab par
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads France
879 vues22 diapositives
Devoxx France 2015 - Introduction à Ionic framework par
Devoxx France 2015 - Introduction à Ionic frameworkDevoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic frameworkStéphanie Moallic
1.9K vues24 diapositives
Apache Cordova 3.3 de zéro par
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroAlexandre Pereira
12.5K vues54 diapositives
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015 par
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Loïc Knuchel
3.4K vues47 diapositives
L’environnement du développement mobile iOS & Android par
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidChris Saez
1.1K vues28 diapositives
How javascript core helped PAW to move from a small app to an extensible tool par
How javascript core helped PAW to move from a small app to an extensible toolHow javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible toolCocoaHeads France
6K vues24 diapositives

Tendances(7)

CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab par CocoaHeads France
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLabCocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
CocoaHeads Toulouse - Présentation Windows Phone 7 - ClevLab
Devoxx France 2015 - Introduction à Ionic framework par Stéphanie Moallic
Devoxx France 2015 - Introduction à Ionic frameworkDevoxx France 2015 - Introduction à Ionic framework
Devoxx France 2015 - Introduction à Ionic framework
Stéphanie Moallic1.9K vues
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015 par Loïc Knuchel
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Loïc Knuchel3.4K vues
L’environnement du développement mobile iOS & Android par Chris Saez
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
Chris Saez1.1K vues
How javascript core helped PAW to move from a small app to an extensible tool par CocoaHeads France
How javascript core helped PAW to move from a small app to an extensible toolHow javascript core helped PAW to move from a small app to an extensible tool
How javascript core helped PAW to move from a small app to an extensible tool

Similaire à Tech conf1 développement_natif_applications_mobiles

Développement web mobile avec IONIC 2 par
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Jean David Olekhnovitch
8.5K vues91 diapositives
Ch1. Développement mobile par
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
160 vues26 diapositives
Apple - WWDC 2018 par
Apple - WWDC 2018Apple - WWDC 2018
Apple - WWDC 2018Maxime Eglem
93 vues25 diapositives
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ... par
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...SOAT
6.9K vues82 diapositives
Architecturez vos applications mobiles avec Azure et Xamarin par
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et XamarinThierry Buisson
122 vues25 diapositives
Android par
AndroidAndroid
AndroidSlimen Belhaj Ali
827 vues26 diapositives

Similaire à Tech conf1 développement_natif_applications_mobiles(20)

Ch1. Développement mobile par Haifa Chorfi
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi160 vues
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ... par SOAT
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
Développer des applications iOS et Android avec c# grâce à Xamarin par Cyril ...
SOAT6.9K vues
Architecturez vos applications mobiles avec Azure et Xamarin par Thierry Buisson
Architecturez vos applications mobiles avec Azure et XamarinArchitecturez vos applications mobiles avec Azure et Xamarin
Architecturez vos applications mobiles avec Azure et Xamarin
Thierry Buisson122 vues
Tk04 Iphone Vs Android Fr par Valtech
Tk04 Iphone Vs Android FrTk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android Fr
Valtech 556 vues
L'Open Web en tant que pierre angulaire du développement multi-objets par Thomas Bassetto
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objets
Thomas Bassetto1.5K vues
Passage aux applications mobiles par neuros
Passage aux applications mobilesPassage aux applications mobiles
Passage aux applications mobiles
neuros783 vues
Xamarin : DevOps Cloud, Re-Build et retour d'expérience par Edwige Seminara
Xamarin : DevOps Cloud, Re-Build et retour d'expérienceXamarin : DevOps Cloud, Re-Build et retour d'expérience
Xamarin : DevOps Cloud, Re-Build et retour d'expérience
Edwige Seminara269 vues
Développement mobile cross-plateform par Stefan Cosquer
Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateform
Stefan Cosquer107 vues
Strategies et developpements mobiles multi-plates-formes. par DocDoku
Strategies et developpements mobiles multi-plates-formes.Strategies et developpements mobiles multi-plates-formes.
Strategies et developpements mobiles multi-plates-formes.
DocDoku2.1K vues

Plus de TelecomValley

Rapport d'activité SoFAB 2022 par
Rapport d'activité SoFAB 2022Rapport d'activité SoFAB 2022
Rapport d'activité SoFAB 2022TelecomValley
31 vues14 diapositives
Rapport d'activité 2022 par
Rapport d'activité 2022Rapport d'activité 2022
Rapport d'activité 2022TelecomValley
50 vues28 diapositives
Rapport d'activité 2021 - Telecom Valley par
Rapport d'activité 2021 - Telecom ValleyRapport d'activité 2021 - Telecom Valley
Rapport d'activité 2021 - Telecom ValleyTelecomValley
364 vues28 diapositives
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la... par
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...TelecomValley
456 vues48 diapositives
Rapport d'activité SoFAB 2020 par
Rapport d'activité SoFAB 2020Rapport d'activité SoFAB 2020
Rapport d'activité SoFAB 2020TelecomValley
175 vues11 diapositives
Rapport d'activité Telecom Valley 2020 par
Rapport d'activité Telecom Valley 2020Rapport d'activité Telecom Valley 2020
Rapport d'activité Telecom Valley 2020TelecomValley
462 vues17 diapositives

Plus de TelecomValley(20)

Rapport d'activité 2021 - Telecom Valley par TelecomValley
Rapport d'activité 2021 - Telecom ValleyRapport d'activité 2021 - Telecom Valley
Rapport d'activité 2021 - Telecom Valley
TelecomValley364 vues
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la... par TelecomValley
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...
Livre blanc "Les métamorphoses de l'entreprise face à l'imprévu - Tome 1 : la...
TelecomValley456 vues
Rapport d'activité SoFAB 2020 par TelecomValley
Rapport d'activité SoFAB 2020Rapport d'activité SoFAB 2020
Rapport d'activité SoFAB 2020
TelecomValley175 vues
Rapport d'activité Telecom Valley 2020 par TelecomValley
Rapport d'activité Telecom Valley 2020Rapport d'activité Telecom Valley 2020
Rapport d'activité Telecom Valley 2020
TelecomValley462 vues
Rapport d'activité SoFAB 2019 par TelecomValley
Rapport d'activité SoFAB 2019Rapport d'activité SoFAB 2019
Rapport d'activité SoFAB 2019
TelecomValley186 vues
Rapport d'activité Telecom Valley 2019 par TelecomValley
Rapport d'activité Telecom Valley 2019Rapport d'activité Telecom Valley 2019
Rapport d'activité Telecom Valley 2019
TelecomValley547 vues
Revue de presse Telecom Valley - Février 2020 par TelecomValley
Revue de presse Telecom Valley - Février 2020Revue de presse Telecom Valley - Février 2020
Revue de presse Telecom Valley - Février 2020
TelecomValley207 vues
Revue de presse Telecom Valley - Janvier 2020 par TelecomValley
Revue de presse Telecom Valley - Janvier 2020Revue de presse Telecom Valley - Janvier 2020
Revue de presse Telecom Valley - Janvier 2020
TelecomValley150 vues
Revue de presse Telecom Valley - Décembre 2019 par TelecomValley
Revue de presse Telecom Valley - Décembre 2019Revue de presse Telecom Valley - Décembre 2019
Revue de presse Telecom Valley - Décembre 2019
TelecomValley122 vues
Revue de presse Telecom Valley - Novembre 2019 par TelecomValley
Revue de presse Telecom Valley - Novembre 2019Revue de presse Telecom Valley - Novembre 2019
Revue de presse Telecom Valley - Novembre 2019
TelecomValley100 vues
Revue de presse Telecom Valley - Octobre 2019 par TelecomValley
Revue de presse Telecom Valley - Octobre 2019Revue de presse Telecom Valley - Octobre 2019
Revue de presse Telecom Valley - Octobre 2019
TelecomValley85 vues
Revue de presse Telecom Valley - Septembre 2019 par TelecomValley
Revue de presse Telecom Valley - Septembre 2019Revue de presse Telecom Valley - Septembre 2019
Revue de presse Telecom Valley - Septembre 2019
TelecomValley85 vues
Présentation Team France Export régionale - 29/11/19 par TelecomValley
Présentation Team France Export régionale - 29/11/19Présentation Team France Export régionale - 29/11/19
Présentation Team France Export régionale - 29/11/19
TelecomValley221 vues
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie... par TelecomValley
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
2019 - NOURI - ALL4TEST- Le BDD pour decouvrir et specifier les besoins metie...
TelecomValley364 vues
Tester c'est bien, monitorer c'est mieux - 2019 - KISSI - Soirée du Test Logi... par TelecomValley
Tester c'est bien, monitorer c'est mieux - 2019 - KISSI - Soirée du Test Logi...Tester c'est bien, monitorer c'est mieux - 2019 - KISSI - Soirée du Test Logi...
Tester c'est bien, monitorer c'est mieux - 2019 - KISSI - Soirée du Test Logi...
TelecomValley190 vues
Et si mon test était la spécification de mon application ? - JACOB - iWE - So... par TelecomValley
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
Et si mon test était la spécification de mon application ? - JACOB - iWE - So...
TelecomValley218 vues
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE par TelecomValley
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFEA la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
A la poursuite du bug perdu - 2019 - THEAULT - DI GIORGIO - ACPQUALIFE
TelecomValley240 vues
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1 par TelecomValley
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.12019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
2019 - HAGE CHAHINE - ALTRAN - Presentation-DecouverteMondeAgile_V1.1
TelecomValley229 vues

Tech conf1 développement_natif_applications_mobiles