Les outils pour développeur·se aborde :
-> le déploiement, sur smartphone
-> le débogage, via les messages systèmes
-> the best practices
À savoir, les bibliothèques populaires, les conventions de nommage et les news à suivre afin de se tenir à jour.
La force d'Android est sa communauté, la suivre c'est adopter ses bonnes pratiques.
Même dans un langage typé on est amené à faire de la validation des données car les types basiques comme String restent très permissifs. Refined Types permettent d'intégrer les règles de validation dans la définition des types ce qui réduit le boilerplate et renforce la type safety avantageusement.
Dans de ce talk je vous présente les Refined Types dans Scala: comment ça marche, à quel besoin ça répond, et comment les utiliser. Nous verrons des exemples avec la librairie de base et un retour d'expérience sur l'intégration avec Play dans dans un API REST.
Déjà, PHP 7.4 toque à la porte, et il arrive les bras chargés de fonctionnalités et de modernisations. Que ce soit les FFI, le support du typage pour les propriétés, l’abandon des nombres real, la covariance, et même la modernisation de strip_tags, array_merge sans argument, et l’imbrication d’opérateurs ternaires : ouf, il va falloir se retrousser les manches. Durant la session, nous passerons en revue les nouvelles fonctionnalités, les incompatibilités, et nous verrons comment préparer son code dès maintenant.
A perl programmer has to develop scripts using perl languages. Scripts are usually required in web applications or applications that are run on the internet. A perl programmer needs to have strong communication skills and knowledge of other programming languages, but most importantly Java programming language.
(Slides de la présentation à la conférence Agile France 2010)
Vous avez lu la cheatsheet de JMock, la documentation d’EasyMock, la FAQ de Mockito et pourtant, la moitié de votre code n’est toujours pas couvert. Vous n’arrivez juste pas à poser de tests dessus.
Votre code est intestable.
L’objectif de la session est de montrer pourquoi certains codes ne peuvent pas être testés et ce qui peut être fait pour y remédier. Nous verrons ainsi pourquoi il vaut mieux respecter la loi de Demeter et faire de l’injection de dépendances. Nous aborderons également les problèmes des classes avec trop de responsabilités et des états globaux.
Même dans un langage typé on est amené à faire de la validation des données car les types basiques comme String restent très permissifs. Refined Types permettent d'intégrer les règles de validation dans la définition des types ce qui réduit le boilerplate et renforce la type safety avantageusement.
Dans de ce talk je vous présente les Refined Types dans Scala: comment ça marche, à quel besoin ça répond, et comment les utiliser. Nous verrons des exemples avec la librairie de base et un retour d'expérience sur l'intégration avec Play dans dans un API REST.
Déjà, PHP 7.4 toque à la porte, et il arrive les bras chargés de fonctionnalités et de modernisations. Que ce soit les FFI, le support du typage pour les propriétés, l’abandon des nombres real, la covariance, et même la modernisation de strip_tags, array_merge sans argument, et l’imbrication d’opérateurs ternaires : ouf, il va falloir se retrousser les manches. Durant la session, nous passerons en revue les nouvelles fonctionnalités, les incompatibilités, et nous verrons comment préparer son code dès maintenant.
A perl programmer has to develop scripts using perl languages. Scripts are usually required in web applications or applications that are run on the internet. A perl programmer needs to have strong communication skills and knowledge of other programming languages, but most importantly Java programming language.
(Slides de la présentation à la conférence Agile France 2010)
Vous avez lu la cheatsheet de JMock, la documentation d’EasyMock, la FAQ de Mockito et pourtant, la moitié de votre code n’est toujours pas couvert. Vous n’arrivez juste pas à poser de tests dessus.
Votre code est intestable.
L’objectif de la session est de montrer pourquoi certains codes ne peuvent pas être testés et ce qui peut être fait pour y remédier. Nous verrons ainsi pourquoi il vaut mieux respecter la loi de Demeter et faire de l’injection de dépendances. Nous aborderons également les problèmes des classes avec trop de responsabilités et des états globaux.
Je propose un mode opératoire pour simplifier les exportations du contenu de vos bases CRM Salesforce. Le CRM contient vos clients, prospects, contacts, SIREN et vous recherchez le moyen de les récupérer facilement.
Je vous propose de le faire en mode texte avec la ligne de commande. Le pre requis est d'installer le Data Loader Salesforce .
Vous pourrez programmer une tâche windows et ne plus jamais vous soucier de produire les fichiers ou bien le faire d'un clic au lieu d'utiliser le Data Loader.
Pour tous dev mobile, que ce soit seul ou en équipe, le déploiement d'une app sur le store de Google ou d'Apple est un passage (quasi) obligatoire.
Android et iOS sont différents jusque dans les IDE et les outils de build. Mais au delà de XCode, Android Studio, gradle... des libraries tels que fastlane vont tenter de réconcilier (un peu) les deux univers.
Nous allons voir comment intégrer la phase de publication dans le processus de build. Et cela via quelques lignes de script ou même directement dans les outils d'intégration continue tel que Jenkins.
Pour tous dev mobile, que ce soit seul ou en équipe, le déploiement d'une app sur le store de Google ou d'Apple est un passage (quasi) obligatoire.
Android et iOS sont différents jusque dans les IDE et les outils de build. Mais au delà de XCode, Android Studio, gradle... des libraries tels que fastlane vont tenter de réconcilier (un peu) les deux univers.
Nous allons voir comment intégrer la phase de publication dans le processus de build. Et cela via quelques lignes de script ou même directement dans les outils d'intégration continue tel que Jenkins
Démarrer un projet sous SBT rapidement, ajouter du code, des dépendances et créer un livrable exécutable sur n'importe quelle plateforme (unix/windows/docker)
• Comment installer Apache Flink sur votre PC ou Mac et comment se familiariser avec CLI, Job Client Web interface et Job Manager Web Interface?
• Comment développer une application Big Data en Java / Scala en utilisant un IDE?
• Comment développer avec Apache Flink en mode interactif avec Flink Shell ou Zeppelin Notebook (Scala)?
http://www.meetup.com/fr/Paris-Apache-Flink-Meetup/events/225577395/
Présentation animée en faveur des étudiantes de l’Ecole Nationale des Sciences Appliquées d'Oujda à l'occasion des "open source Day's".
L'objectif est d'initier les personnes aux notions basique du développement sous Android :
- Environnement de développement et plateforme
- Création d'une première application
- Découvrir les notions d'Activité, de layout ...
Formation C# - Cours 3 - Programmation objetkemenaran
Troisième partie de la formation C# du Club Microsoft Isep.
Fondements de la Porgramation Orientée Objet, introduction aux classes, méthodes et attributs par l'exemple.
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
par Michael Akbaraly et François Petitit - OCTO Technology
Vous avez récupéré un projet JavaScript de plusieurs milliers de lignes, on vous demande des évolutions et des corrections de bugs, et rien ne va.
Code illisible, régressions en pagaille, structure des répertoires incompréhensibles : vous ne savez pas par où commencer !
Au long des 90 minutes de cet atelier, nous vous proposons de découvrir les techniques et les outils qui vont vous sauver la vie via des travaux pratiques de code JavaScript côté back-end avec NodeJS, et côté front-end avec AngularJS.
Débutants ou ayant déjà une connaissance de ces technologies sont les bienvenus. Les travaux pratiques seront disponibles si vous souhaitez coder vous-mêmes pendant l'atelier.
Je propose un mode opératoire pour simplifier les exportations du contenu de vos bases CRM Salesforce. Le CRM contient vos clients, prospects, contacts, SIREN et vous recherchez le moyen de les récupérer facilement.
Je vous propose de le faire en mode texte avec la ligne de commande. Le pre requis est d'installer le Data Loader Salesforce .
Vous pourrez programmer une tâche windows et ne plus jamais vous soucier de produire les fichiers ou bien le faire d'un clic au lieu d'utiliser le Data Loader.
Pour tous dev mobile, que ce soit seul ou en équipe, le déploiement d'une app sur le store de Google ou d'Apple est un passage (quasi) obligatoire.
Android et iOS sont différents jusque dans les IDE et les outils de build. Mais au delà de XCode, Android Studio, gradle... des libraries tels que fastlane vont tenter de réconcilier (un peu) les deux univers.
Nous allons voir comment intégrer la phase de publication dans le processus de build. Et cela via quelques lignes de script ou même directement dans les outils d'intégration continue tel que Jenkins.
Pour tous dev mobile, que ce soit seul ou en équipe, le déploiement d'une app sur le store de Google ou d'Apple est un passage (quasi) obligatoire.
Android et iOS sont différents jusque dans les IDE et les outils de build. Mais au delà de XCode, Android Studio, gradle... des libraries tels que fastlane vont tenter de réconcilier (un peu) les deux univers.
Nous allons voir comment intégrer la phase de publication dans le processus de build. Et cela via quelques lignes de script ou même directement dans les outils d'intégration continue tel que Jenkins
Démarrer un projet sous SBT rapidement, ajouter du code, des dépendances et créer un livrable exécutable sur n'importe quelle plateforme (unix/windows/docker)
• Comment installer Apache Flink sur votre PC ou Mac et comment se familiariser avec CLI, Job Client Web interface et Job Manager Web Interface?
• Comment développer une application Big Data en Java / Scala en utilisant un IDE?
• Comment développer avec Apache Flink en mode interactif avec Flink Shell ou Zeppelin Notebook (Scala)?
http://www.meetup.com/fr/Paris-Apache-Flink-Meetup/events/225577395/
Présentation animée en faveur des étudiantes de l’Ecole Nationale des Sciences Appliquées d'Oujda à l'occasion des "open source Day's".
L'objectif est d'initier les personnes aux notions basique du développement sous Android :
- Environnement de développement et plateforme
- Création d'une première application
- Découvrir les notions d'Activité, de layout ...
Formation C# - Cours 3 - Programmation objetkemenaran
Troisième partie de la formation C# du Club Microsoft Isep.
Fondements de la Porgramation Orientée Objet, introduction aux classes, méthodes et attributs par l'exemple.
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
par Michael Akbaraly et François Petitit - OCTO Technology
Vous avez récupéré un projet JavaScript de plusieurs milliers de lignes, on vous demande des évolutions et des corrections de bugs, et rien ne va.
Code illisible, régressions en pagaille, structure des répertoires incompréhensibles : vous ne savez pas par où commencer !
Au long des 90 minutes de cet atelier, nous vous proposons de découvrir les techniques et les outils qui vont vous sauver la vie via des travaux pratiques de code JavaScript côté back-end avec NodeJS, et côté front-end avec AngularJS.
Débutants ou ayant déjà une connaissance de ces technologies sont les bienvenus. Les travaux pratiques seront disponibles si vous souhaitez coder vous-mêmes pendant l'atelier.
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Formation
Suite à l'entrée en vigueur de la « Participation Financière Obligatoire » le 2 mai dernier, les règles du jeu ont changé !
Pour les entreprises, cette révolution du dispositif est l'occasion de revoir sa stratégie de formation pour co-construire avec ses salariés un plan de formation alliant performance de l'organisation et engagement des équipes.
Au cours de ce webinar de 20 minutes, co-animé avec la Caisse des Dépôts et Consignations, découvrez tous les détails actualisés sur les dotations et les exonérations, les meilleures pratiques, et comment maximiser les avantages pour les entreprises et leurs salariés.
Au programme :
- Principe et détails de la « Participation Financière Obligatoire » entrée en vigueur
- La dotation : une opportunité à saisir pour co-construire sa stratégie de formation
- Mise en pratique : comment doter ?
- Quelles incidences pour les titulaires ?
Webinar exclusif animé à distance en coanimation avec la CDC
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24BenotGeorges3
Les informations et évènements agricoles en province du Luxembourg et en Wallonie susceptibles de vous intéresser et diffusés par le SPW Agriculture, Direction de la Recherche et du Développement, Service extérieur de Libramont.
https://agriculture.wallonie.be/home/recherche-developpement/acteurs-du-developpement-et-de-la-vulgarisation/les-services-exterieurs-de-la-direction-de-la-recherche-et-du-developpement/newsletters-des-services-exterieurs-de-la-vulgarisation/newsletters-du-se-de-libramont.html
Bonne lecture et bienvenue aux activités proposées.
#Agriculture #Wallonie #Newsletter #Recherche #Développement #Vulgarisation #Evènement #Information #Formation #Innovation #Législation #PAC #SPW #ServicepublicdeWallonie
5. A. Déploiement
+ , ) Devenir développeur·se Android
- Menu Options Développeurs
Numéro de Build
. - Débogage USB
$ $
6. A. Déploiement
+ , ) Options du téléphone
/ Sélectionner l’app. de position fictive
0 Afficher les contours
1 Déboguer les conflits GPU
Afficher mém. CPU utilisée
3 Mode Strict activé
4 Ne pas conserver les activités
5 Limite processus arr.-plan
7. A. Déploiement
+ , ) Options du téléphone
Positions fictives
/
6 Simule d’autres positions
8. A. Déploiement
+ , ) Options du téléphone
Afficher les contours
0
6 Affiche les éléments d’une vue
(padding, margin, …)
13. A. Déploiement
+ , ) Options du téléphone
Mode Strict activé
3
6 Affiche cadre rouge si Thread principal
reste occupé
14. A. Déploiement
+ , ) Options du téléphone
Ne pas conserver les activités
4
6 Conserve une Activity à la fois
15. A. Déploiement
+ , ) Options du téléphone
Limite processus arr.-plan
5
6 Définie nb processus (app) à conserver
16. 7 + Lister les appareils
8 + Se connecter à un appareil
9 : + Installer une app
+ 4 9 Désinstaller une app
; : + Copier des fichiers
A. Déploiement
) * + Android Debug Bridge
46. B. Débogage
A Débugage des ressources
M Build > Clean
M File > Invalidate Caches / Restart …
N Run : Erreur à la compilation
O Erreur dans le dossier Java
O Erreur dans fenêtre de message
B Cherchez la ressource anormal
B Cherchez l’attribut XML erroné
50. B. Débogage
A Débugage pas à pas
Q Placer point d’arrêt
A Lancer le débugger
O Zoom sur la fenêtre Debug
_ Aller au point d’arrêt suivant
_ Aller à la ligne dans dessous
_ Aller à la ligne à l’intérieur du code
_ Observer une variable
_ Exécuter du code à la volée
B
R
R
N
S
71. C. Best Practices
V Tests Unitaires
package (androidTest)
+
C ActivityInstrumentationTestCase2
72. C. Best Practices
V Tests Unitaires
com.chillcoding.home (androidTest)
M (droit) Run > All tests
73. C. Best Practices
V Tests Unitaires
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
...
testCompile 'junit:junit:4.12'
}
C gradle
Référence [Android] : Expresso
Référence [22] :
74. C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public HomeActivityTest()
@Override
protected void setUp() throws Exception
public void testPreconditions()
public void testText()
75. C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public HomeActivityTest() {
super(HomeActivityTest.class);
6 Initialise la classe
76. C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
@Override
protected void setUp() throws Exception {
super.setup();
6 Initialise environnement de test
77. C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public void testPreconditions()
6 Vérifie des pré-conditions
78. C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public void testText()
6 Effectue le test
79. Tests aléatoires
[
< ./adb shell monkey -p com.chillcoding.mycuteheart -v 500
C. Best Practices
) Monkey Stress Test
6 500 évts aléatoires
80. C. Best Practices
V Naming Convention
V Naming Convention
V Convention de nommage
) Raccourcis clavier
81. NomDeClasse : UpperCamelCase
nomDeVariable : camelCase
CONSTANTE : UPPER_CASE
fichier_ressource : snake_case
idElementGraphique
id_string
C. Best Practices
V Convention de nommage
82. Légende :
M Clique
M Touche Entrée
M Touche Contrôle
M Touche Commande
M Touche Shift
M Touche d’option ou Alt
C. Best Practices
) Raccourcis clavier
Alt
Ctrl
⌘
M
83. C. Best Practices
) Raccourcis clavier
Alt Résoudre tous les pb
⌘ Alt L Indenter le code
Valider proposition de AS
Ctrl M Aller sur l'élément
Voir la documentation
Renommer une variable,
un fichier
Générer des fonctions
de la classe mère
F6
⌘ N
Ctrl Q / F1
Chercher dans tout le projet
Ctrl /
Mettre en commentaires ligne ou
sélection
Ctrl
Ctrl
Y
D
Effacer la ligne
Dupliquer la ligne ou la sélection
Ctrl O Overrider une méthode
84. IF YOU THINK
YOU ARE TOO
SMALL
TO MAKE A
DIFFERENCE
TRY SLEEPING
WITH A MOSQUITO.
_ African Proverb
85. Références
• Quizz Outils du Développeur Android
• ChillCoding: Android references
• Udacity: Android Development for Beginners (Video)
• Developer Android: Application Fundamentals (API Guide)
• Edition Eni : Android 5 Les fondamentaux du développement d'applications Java (Livre)
• Improve Your Code with Lint
• TDD in Android Kotlin
• Must Have Libraries
• wasabeef: Awesome android ui
• https://www.raywenderlich.com/category/android
• Jakewharton: Just say no to hungarian notation
• https://medium.com/ekohe/how-to-write-good-code-an-introduction-to-sandi-metz-s-rules-89bb3d749d53
• https://choosealicense.com/
• https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md
• https://developer.android.com/kotlin/style-guide
• https://kotlinlang.org/docs/reference/coding-conventions.html