Fondamentaux de la programmation Android sur l'exemple du jeu Sudoku. Écrire la première application Android

salle d'opération système androïde by Google est parfait pour les développeurs qui souhaitent créer des applications mobiles sans avoir à passer par les processus d'approbation compliqués qu'Apple a à chaque fois.

Ce guide vise à vous fournir les logiciels et outils nécessaires pour vous aider à démarrer facilement le développement de votre propre application.

Peu importe à quel point vous êtes bon en programmation, car si vous maîtrisez le kit de développement logiciel (SDK) Android, vos applications se révéleront excellentes. Alors, consultez les documents ci-dessous pour entrer dans le processus.

Kit de développement Java

La première chose dont vous avez besoin pour commencer à développer des applications Java (la base des applications Android) est le kit de développement Java (JDK) d'Oracle, qui peut être téléchargé à partir du lien suivant.

Vous avez probablement déjà téléchargé et installé une forme de l'environnement d'exécution Java (JRE) nécessaire pour exécuter des applets sur votre ordinateur. Vous devez désinstaller la version JRE actuellement installée sur votre ordinateur en cas de conflit avec Version JDK que vous téléchargez. Heureusement, la version ci-dessus inclut la dernière et meilleure version JRE qui sera exactement compatible avec le JDK, éliminant ainsi le besoin de le réinstaller.

Téléchargez et exécutez le programme d'installation, assurez-vous que 'Outils de développement', 'Code source' et 'JRE public' sont inclus dans l'installation dans la fenêtre installation manuelle(à voir ci-dessous). Cliquez sur "Suivant", lisez les conditions accord de licence, si vous disposez de suffisamment de temps libre, et procédez à l'installation.

Bien que la plupart des applications d'environnement de développement intégré (IDE) - nous en reparlerons à l'étape suivante - soient livrées avec leur propre compilateur, je vous recommande d'intégrer votre compilateur Java nouvellement installé dans ligne de commande afin que vous puissiez l'utiliser à la demande.

Si vous utilisez Windows, accédez aux paramètres système à partir du panneau de configuration et sélectionnez les paramètres système avancés. Ici, sélectionnez "Variables d'environnement" et recherchez la variable "Chemin". Ajoutez let avant le fichier en tant que répertoire 'bin' avant votre Installations Java, comme illustré dans l'exemple ci-dessous.

Pour vérifier si tout s'est bien passé, utilisez les commandes 'java -version' et 'javac -version'. Vous devriez voir quelque chose comme ceci :



Installation de l'IDE

Les IDE sont souvent utilisés par les développeurs saisonniers et les débutants qui souhaitent développer des applications. Pour ceux qui ne sont pas au courant, un IDE est une application qui aide les programmeurs à écrire du code en fournissant un ensemble concis d'outils tels que des débogueurs, des compilateurs, etc.

Bien qu'il existe de nombreux IDE sur Internet, nous utiliserons ici le logiciel gratuit Eclipse, car Google fournit un plug-in pour l'intégrer. SDK Android. Télécharger version requiseÉclipse peut.

Cela peut varier d'un cas à l'autre, mais lorsque j'ai téléchargé la ressource, le logiciel était fourni sous forme de fichier zip contenant le fichier "eclipse.exe", avec lequel vous pouviez commencer à travailler sans aucune installation. Si votre version nécessite une installation, faites-le vous-même, car il n'y a pas d'exigences et de paramètres particuliers. Au premier lancement, le logiciel vous demandera de spécifier le 'Workbench' où se trouvent vos codes et les fichiers associés. Spécifiez un emplacement pratique pour vous.

Une fois terminé, ce qui suit s'affichera devant vous :

Si vous souhaitez vous familiariser un peu avec Eclipse avant de commencer, ouvrez la fenêtre d'aide et consultez le Guide de l'utilisateur de Workbench. Ici, vous pouvez également consulter le Guide de l'utilisateur de développement, qui vous aidera à acquérir les compétences de base pour travailler avec Java si vous n'êtes pas déjà familiarisé avec ce langage.

Télécharger le SDK Android

Suivez ce lien et cliquez sur "Obtenir le SDK". Au page suivante vous serez invité avec un lien pour installer le SDK Android sur votre ordinateur.

Dès que le téléchargement du fichier exécutable est terminé, lancez l'installation. Lorsque vous atteignez la fenêtre ci-dessous, spécifiez le chemin d'accès au répertoire où vous souhaitez installer, ou rappelez-vous celui qui est déjà indiqué.

Lorsque l'installation est terminée, ouvrez le gestionnaire de SDK Android, puis vous verrez la fenêtre suivante :

Cliquez sur le bouton pour installer tous les packages et ressources requis qui n'étaient pas inclus dans l'installation d'origine.

Installation du plug-in des outils de développement Android

Comme indiqué ci-dessus, Google propose un plugin SDK Android dédié pour Eclipse qui peut être ajouté directement à partir de l'IDE.

Dans Eclipse, allez dans 'Aide' et sélectionnez 'Installer un nouveau logiciel'. Cliquez sur le bouton "Ajouter", puis vous serez redirigé vers une fenêtre qui vous permettra d'ajouter un référentiel de logiciels en ligne contenant le plugin ADT. Donnez-lui un nom descriptif et saisissez l'URL suivante dans le bloc "Emplacement" :

  • http://dl-ssl.google.com/android/eclipse

Cliquez sur OK'. Sélectionnez le référentiel nouvellement ajouté et cochez la case "Outils de développement".

Cliquez sur "Suivant" et suivez les étapes d'installation des fichiers du plugin. Une fois terminé, les 2 icônes suivantes devraient apparaître dans votre panneau de configuration Eclipse :

Allez maintenant dans "Fenêtre" et "Préférences", sélectionnez la section "Android" et assurez-vous que l'emplacement du SDK correspond au répertoire du SDK que vous avez spécifié précédemment. En conséquence, vous devriez obtenir ce qui suit :

Vous êtes maintenant le propriétaire du plugin Android Development Tools.

Configuration de l'émulateur Android

Bien que cela aide, vous n'avez pas vraiment besoin d'avoir tous les modèles d'appareils Android à portée de main pour créer des applications pour eux, car Google nous fournit un excellent émulateur de système d'exploitation mobile natif avec un SDK. Avant de commencer le développement, nous aimerions configurer le périphérique virtuel Android (AVD) afin que la plate-forme de test soit prête à l'avance.

Nous devons maintenant créer un nouveau périphérique virtuel. Cet exemple consiste à créer dispositif commun, mais il existe également des ressources pour des paramètres spécifiques pour les appareils Android. Sélectionnez « Nouveau » et une boîte vide comme celle ci-dessous vous sera présentée :

  • Nom : si vous souhaitez tester l'application sur plusieurs paramètres d'appareil, vous devrez entrer quelque chose de descriptif. D'autre part, un nom plus générique peut également être utilisé.
  • Cible : Il s'agit de la version d'Android que l'émulateur ciblera. Dans la plupart des cas, votre option sera dernière version Android, qui, avec le SDK installé. Cependant, si vous souhaitez tester sur des versions antérieures (ce qui serait plutôt judicieux étant donné tant de versions et de modèles différents), utilisez le gestionnaire de SDK pour installer des versions supplémentaires.
  • Carte SD : spécifie l'espace de stockage supplémentaire à utiliser sur l'appareil. Par défaut, le périphérique virtuel dispose de 194 mégaoctets de mémoire "interne" et d'une carte SD, vous devrez donc spécifier manuellement la quantité d'espace disque requise.
  • Habillage : vous pouvez utiliser cette option pour définir l'habillage et les configurations appareil spécifique(HTC One X, par exemple). Mais dans notre cas, nous utilisons la valeur par défaut.
  • Matériel : comme parmi appareils physiques au Basé sur Android s'il existe des différences significatives en termes de matériel, vous pouvez utiliser cette option pour ajouter le matériel que votre application utilisera.

Une fois terminé, la fenêtre AVD Manager devrait inclure votre appareil nouvellement créé. Vous pouvez cliquer sur "Démarrer" pour démarrer cet appareil, sachez simplement que le premier démarrage peut prendre un certain temps.



Votre premier projet Android

Maintenant que vous avez équipé votre ordinateur de tous applications nécessaires et plugins, vous pouvez commencer à développer du code. Mais nous devons d'abord préparer les fichiers du projet.

Pour commencer, allez dans "Fichier", "Nouveau", "Projet" et développez onglet Android. Sélectionnez "Projet d'application Android" et la fenêtre suivante s'ouvrira devant vous :

Vous pouvez utiliser les menus déroulants à côté de chaque champ pour sélectionner la valeur appropriée. La principale chose à considérer est ‘Application Name’, qui est responsable du nom de notre application lors de l’installation, ainsi que ‘Minimum Required SDK’, avec lequel vous spécifiez le plus première version Android qui prend en charge votre application.

Cliquez sur "Suivant" pour continuer et définissez l'icône de l'exécutable comme visage de votre application. Le menu suivant vous demandera de créer une 'Activité' pour votre application.

Il s'agit de l'activité ou de la vue avec laquelle l'utilisateur interagira, il est donc plus logique de diviser votre application en activités en fonction des fenêtres que l'utilisateur verra et des fonctionnalités qui seront disponibles sur chacune d'entre elles. Ainsi, si, par exemple, vous créez un programme simple"Hello World", alors vous n'avez besoin que d'une seule fenêtre active qui représente le texte, et tous les paramètres d'interface sont extraits des fichiers de ressources créés par le SDK.

Lorsque vous avez choisi ces fenêtres, cliquez sur "Terminer". Eclipse rassemblera tous les fichiers nécessaires à l'application, dans lesquels vous écrirez du code et/ou modifierez des paramètres pour spécifier les paramètres de votre programme.

Et c'est tout! Tout est prêt pour assembler l'application finie. Sur Google, vous pouvez trouver des guides complets sur la façon de développer des applications Android (pour ceux qui ont de l'expérience en programmation). Toute personne souhaitant se lancer dans la programmation Java devrait également lire d'abord des didacticiels comme celui fourni par Oracle.

La programmation fait partie de ces domaines où chacun peut se sentir créateur. Habituellement, il s'agit du développement d'applications pour ordinateurs personnels, unités d'équipements industriels ou simplement pour produits électroniques artisanaux. Mais avec la diffusion des appareils mobiles tactiles, la programmation pour Android, iOS ou un autre type de shell système similaire devient de plus en plus populaire. Bon, il faut avouer que c'est un métier prometteur. Par conséquent, dans le cadre de l'article, il sera considéré, sous Android à partir de zéro. Quelles fonctionnalités existent ici ? Quelle langue est utilisée ?

Création de programmes

Avant d'écrire vous-même des programmes, vous devez étudier tous les composants nécessaires pour cela:

  1. Langue.
  2. Sélectionnez un environnement de développement. Nous nous attarderons plus en détail sur le langage, ainsi que sur les produits logiciels où seront créées les applications. Mais d'abord, parlons un peu des environnements de développement. Classiquement, ils peuvent être divisés en trois composantes :
  • graphique;
  • ordinaire;
  • en ligne.

En ce qui concerne la création de programmes, il convient de noter qu'il est désormais difficile de mettre en avant une idée qui n'a pas été élaborée auparavant. Par conséquent, si un problème survient ou simplement en l'absence de connaissances, il est nécessaire de formuler correctement le malentendu qui s'est produit et de se tourner vers des programmeurs plus expérimentés. Ils pourront aider à la création de programmes avec des conseils constructifs.

Dans quel langage les programmes sont-ils écrits ?

Java est utilisé à ces fins. Il convient de noter qu'il s'agit d'un langage de programmation assez complexe. Mais pour créer ses propres applications, il n'est pas du tout nécessaire de le connaître complètement. Il suffira de connaissances et de compétences de base pour travailler avec des informations de référence afin d'obtenir des réponses à vos questions. De plus, il existe certains blancs, à l'aide desquels, il sera possible de prendre certaines mesures pour créer une application sans problèmes majeurs. Ensuite, programmer pour Android devient un plaisir.

Choisir un environnement de développement typique

Eclipse et Android SDK sont considérés comme les acteurs les plus sérieux. Ils sont tous les deux gratuits. En général, il convient de noter que ces environnements de développement sont des concurrents sérieux, et chacun d'eux a un certain nombre de forces et de faiblesses. Chacun mérite d'être étudié. Séparément, attardons-nous sur un aspect du SDK Android - l'émulateur. C'est un programme qui prétend être un téléphone ou une tablette qui fonctionne sur la base d'"Android". L'émulateur fonctionne bien ordinateur ordinaire et sur le bureau ressemble à un appareil mobile standard. Il n'y a qu'une seule fonctionnalité - elle est contrôlée avec la souris et le clavier, et non avec votre doigt. Dans l'émulateur, il sera possible de vérifier les performances de l'application sous différentes extensions d'écran, ainsi que sur différentes versions système d'exploitation mobile Android. Par conséquent, aussi étrange que cela puisse vous paraître, mais lors du développement d'applications destinées à Android, il n'est pas du tout nécessaire d'avoir un téléphone.

De quoi avez-vous besoin pour développer votre application ?

Environnements de développement graphique

Cette option convient à ceux qui n'ont aucune idée de la programmation en général, mais qui souhaitent obtenir leur application ici et maintenant. Pour commencer, vous devez vous familiariser avec la description et les fonctionnalités des environnements de développement graphique. Ainsi, certains peuvent ne placer que les éléments les plus simples et leur attacher un minimum de fonctionnalités. Il vaut mieux ne pas utiliser de telles ressources, car avec leur aide, il sera difficile de comprendre la logique du travail et de créer un produit final développé. Il est conseillé de faire une sélection selon les paramètres suivants :

  1. Avoir une interface intuitive.
  2. Utilisation d'une logique de travail claire.
  3. Possibilité de créer des éléments en modes graphique et code.
  4. Disponibilité d'une documentation sur l'utilisation de l'environnement de développement et d'un forum de support.

Environnement de développement en ligne

Ils peuvent fournir une gamme assez large de fonctionnalités dans un simple point d'accès - Internet. "Environnement de développement en ligne" - cela dit probablement tout. Bien qu'il faille préciser que sous Android ce n'est toujours pas une tâche facile. Ainsi, il sera plus difficile de mettre en œuvre des tireurs et des applications de complexité similaire. Mais les programmes avec conception de texte et transfert de données sont faciles.

Conclusion

Nous espérons qu'il n'y aura plus de questions sur les premières étapes de préparation à la création de vos programmes. Si vous décidez de vous engager sérieusement dans la programmation, vous pouvez utiliser la littérature spécialisée. Par exemple, le livre Android Programming de Hardy Brian. Bien sûr, ce n'est pas le seul bon travail, mais il faut bien commencer quelque part. Avec ce guide, vous pouvez commencer votre chemin vers le succès.

Dans tous les cas, le plus dur est le début. Il est souvent difficile d'entrer dans le contexte, ce à quoi j'ai été confronté lorsque j'ai décidé de développer ma première application Android. Cet article est destiné à ceux qui veulent commencer mais ne savent pas par où.

L'article couvrira l'ensemble du cycle de développement d'applications. Ensemble, nous allons écrire un jeu Tic-Tac-Toe simple avec un seul écran (dans Android OS, cela s'appelle Activity).

Le manque d'expérience en développement Java ne devrait pas être un obstacle à la maîtrise d'Android. Ainsi, les exemples n'utiliseront pas de constructions spécifiques à Java (ou ils seront minimisés autant que possible). Si vous écrivez, par exemple, en PHP et que vous connaissez les principes fondamentaux du développement logiciel, cet article vous sera des plus utiles. À son tour, comme je ne suis pas un expert en développement Java, on peut supposer que le code source ne revendique pas le label "meilleures pratiques pour le développement Java".

Installation des programmes et utilitaires nécessaires

Je vais lister les outils nécessaires. Il y en a 3 :

  1. IDE avec prise en charge du développement pour Android :
    • Plug-in Eclipse+ADT
    • IntelliJ IDEA Édition communautaire
    • Netbeans + greffon nbandroid

Les utilitaires sont installés dans l'ordre défini ci-dessus. Il ne sert à rien d'installer tous les IDE répertoriés (sauf si vous rencontrez des difficultés pour choisir le bon). J'utilise IntelliJ IDEA Community Edition, l'un des IDE les plus avancés pour Java à l'heure actuelle.

Lancement de l'appliance virtuelle

Après avoir lancé AVD Manager et installé des packages supplémentaires (SDK de différentes versions), vous pouvez commencer à créer un périphérique virtuel avec les paramètres nécessaires. Comprendre l'interface ne devrait pas être difficile.

Liste des périphériques

Créer un projet

J'ai toujours hâte de me lancer, en minimisant les activités préparatoires, qui incluent la création d'un projet dans un IDE, surtout lorsque le projet est pédagogique et ne prétend pas à la production.

Donc Fichier->Nouveau projet :

En appuyant sur la touche F6, le projet sera assemblé, compilé et lancé sur un appareil virtuel.

Structuration du projet

La capture d'écran précédente montre la structure du projet. Étant donné que dans cet article, nous poursuivons des objectifs purement pratiques, nous nous concentrerons uniquement sur les dossiers que nous utiliserons dans le processus. Ce sont les répertoires suivants : gène, res et src.

Dans le dossier gène certains fichiers sont générés automatiquement lors de la construction du projet. Vous ne pouvez pas les modifier manuellement.

Le dossier res est conçu pour stocker des ressources telles que des images, des textes (y compris des traductions), des valeurs par défaut, des mises en page.

src- c'est le dossier dans lequel la partie principale du travail aura lieu, car les fichiers avec les textes sources de notre programme sont stockés ici.

Premières lignes

Dès que l'Activité (écran de l'application) est créée, la méthode onCreate() est appelée. L'IDE l'a rempli avec 2 lignes :
super.onCreate(savedInstanceState); setContentView(R.layout.main);
La méthode setContentView (équivalente à this.setContentView) définit la disposition xml pour écran actuel. De plus, les mises en page xml seront appelées "mise en page" et les écrans - "Activité". La mise en page dans l'application sera la suivante :

Pour cette application, TableLayout est idéal. L'identifiant peut être attribué à n'importe quelle ressource. Dans ce cas, le TableLayout est affecté id = main_l. À l'aide de la méthode findViewById(), vous pouvez accéder à la vue :
mise en page TableLayout privée ; // ceci est une propriété de la classe KrestikinolikiActivity public void onCreate(Bundle savedInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); layout = (TableLayout) findViewById(R.id.main_l); buildGameField( ); )

Nous devons maintenant implémenter la méthode buildGameField(). Pour ce faire, vous devez générer un champ sous forme de matrice. Ceci sera géré par la classe Game. Vous devez d'abord créer une classe Square pour les cellules et une classe Player dont les objets rempliront ces cellules.

Carré.java

package com.exemple ; Place de classe publique (privée joueur joueur= nul ; public void fill(Player player) ( this.player = player; ) public boolean isFilled() ( if (player != null) ( return true; ) return false; ) public Player getPlayer() ( return player; ) )

Lecteur.java

package com.exemple ; public class Player ( private String name; public Player(String name) ( this.name = name; ) public CharSequence getName() ( return (CharSequence) name; ) )

Toutes les classes de notre application sont situées dans le dossier src.

Jeu.java

package com.exemple ; public class Game ( /** * field */ private Square field; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // remplir le champ pour (int i = 0, l = champ.longueur;i

Initialisation du jeu dans le constructeur KrestikinolikiActivity.
public KrestikinolikiActivity() ( game = new Game(); game.start(); // sera implémenté plus tard)

La méthode buildGameField() de la classe KrestikinolikiActivity. Il ajoute dynamiquement des lignes et des colonnes au tableau (terrain de jeu) :
boutons de bouton privés = nouveau bouton ; //(....) private void buildGameField() ( Champ carré = game.getField(); for (int i = 0, lenI = field.length; i
La ligne 8 crée un objet qui implémente l'interface View.OnClickListener. Créons une classe Listener imbriquée. Il ne sera visible que depuis KrestikinolikiActivity.
public class Listener implémente View.OnClickListener ( private int x = 0; private int y = 0; public Listener(int x, int y) ( this.x = x; this.y = y; ) public void onClick(View view) (Bouton bouton = vue (Bouton); ) )
Reste à mettre en place la logique du jeu.
jeu de classe public ( /** * joueurs */ joueurs joueurs privés ; /** * champ */ champ carré privé ; /** * le jeu est-il lancé ? */ booléen privé démarré ; /** * joueur actuel */ privé Player activePlayer ; /** * Compte le nombre de cellules remplies */ private int filled ; /** * Total cells */ private int squareCount ; /** * Constructor * */ public Game() ( field = new Square; squareCount = 0; // remplir le champ pour (int i = 0, l = field.length; i

Détermination du gagnant

K. O. suggère que le tic-tac-toe gagne celui qui aligne X ou O sur une longue ligne, égale à la longueur marges verticalement, horizontalement ou en diagonale. La première pensée qui vient à l'esprit est d'écrire des méthodes pour chaque cas. Je pense que le modèle de chaîne de responsabilité fonctionnera bien dans ce cas. Définir une interface
package com.exemple ; interface publique WinnerCheckerInterface ( public Player checkWinner(); )
Puisque le jeu a la responsabilité de décider du gagnant, il implémente cette interface. Il est temps de créer des "juges de lignes" virtuels, dont chacun testera son camp. Ils implémentent tous l'interface WinnerCheckerInterface.

WinnerCheckerHorizontal.java

package com.exemple ; public class WinnerCheckerHorizontal implémente WinnerCheckerInterface ( private Game game; public WinnerCheckerHorizontal(Game game) ( this.game = game; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = champ.longueur;i

WinnerCheckerVertical.java

package com.exemple ; public class WinnerCheckerVertical implémente WinnerCheckerInterface (jeu de jeu privé; public WinnerCheckerVertical (jeu de jeu) (this.game = jeu;) public Player checkWinner() (champ carré = game.getField(); Player currPlayer; Player lastPlayer = null; for (int i = 0, len = champ.longueur;i

WinnerCheckerDiagonalLeft.java

package com.exemple ; public class WinnerCheckerDiagonalLeft implémente WinnerCheckerInterface ( jeu privé ; jeu public WinnerCheckerDiagonalLeft (jeu) ( this.game = jeu ; ) public Player checkWinner() ( Square field = game.getField(); Player currPlayer ; Player lastPlayer = null ; int successCounter = 1 ; pour (int i = 0, len = champ.longueur ; je

WinnerCheckerDiagonalRight.java

package com.exemple ; public class WinnerCheckerDiagonalRight implémente WinnerCheckerInterface (jeu de jeu privé ; public WinnerCheckerDiagonalRight(jeu de jeu) (this.game = jeu ; ) public Player checkWinner() (champ carré = game.getField(); Player currPlayer; Player lastPlayer = null; int successCounter = 1 ; pour (int i = 0, len = champ.longueur ; je
Initialisons-les dans le constructeur du jeu :
//(....) /** * "Juges" =). Après chaque tour, ils vérifieront si * il y a un gagnant * / winnerCheckers privés de WinnerCheckerInterface ; //(....) public Game() ( //(....) winnerCheckers = new WinnerCheckerInterface; winnerCheckers = new WinnerCheckerHorizontal(this); winnerCheckers = new WinnerCheckerVertical(this); winnerCheckers = new WinnerCheckerDiagonalLeft(this); winnerCheckers = new WinnerCheckerDiagonalRight(this); //(....) )
Implémentation de checkWinner() :
public Player checkWinner() ( for (WinnerCheckerInterface winChecker: winnerCheckers) ( Player winner = winChecker.checkWinner(); if (winner != null) ( return winner; ) ) return null; )
Nous vérifions le gagnant après chaque coup. Ajouter du code à la méthode onClick() de la classe Listener
public void onClick(View view) ( Button button = (Button) view; Game g = game; Player player = g.getCurrentActivePlayer(); if (makeTurn(x, y)) ( button.setText(player.getName()) ; ) Joueur gagnant = g.checkWinner(); if (winner != null) ( gameOver(winner); ) if (g.isFieldFilled()) ( // si le champ est rempli gameOver(); ) )
La méthode gameOver() est implémentée en 2 variantes :
private void gameOver(Player player) ( CharSequence text = "Player \"" + player.getName() + "\" won!"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset (); refresh(); ) private void gameOver() ( CharSequence text = "Draw"; Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); game.reset(); refresh(); )
Pour Java, gameOver(Player player) et gameOver() sont différentes méthodes. En utilisant le Toast.makeText Builder, vous pouvez rapidement créer et afficher une notification. refresh() met à jour l'état du champ :
private void refresh() ( Champ carré = game.getField(); for (int i = 0, len = field.length; i

Prêt! J'espère que cet article vous a aidé à vous familiariser avec le monde du développement d'OS Android. Merci de votre attention!

Vidéo de l'application terminée

Le système d'exploitation Android est installé sur 66,71 % de tous les appareils mobiles dans le monde. Rien d'étonnant donc à ce que de nombreux informaticiens novices veuillent concrétiser leurs ambitions sur cette plateforme.

Plus récemment, sur GeekBrains, nous avons abordé les plateformes mobiles, mais cette fois nous nous attarderons plus en détail sur Android. Voici 10 langages qui vous permettront de créer une application mobile de tout type et de toute complexité :

Java

Il ne serait pas exagéré d'appeler Java la langue officielle d'Android. Quoi qu'il en soit, presque toute la documentation pédagogique, tous les cours en ligne se basent dessus. C'est aussi le langage le plus populaire selon TIOBE, le deuxième le plus sourcé sur GitHub, et généralement le plus important. un beau language. C'est pourquoi l'apprentissage de Java devrait être une priorité absolue pour tout développeur Android. Que ce ne soit pas facile (après tout, la langue a 22 ans et la légèreté n'a jamais été son point fort), même s'il est théoriquement possible de s'en sortir avec des langues plus modernes, rappelez-vous - il est impossible d'obtenir un succès significatif sur Android sans comprendre Java du tout, sans parler des codes sources spécifiques.

C#

Avec tout le scepticisme sans fin dirigé vers les produits Microsoft, il convient de reconnaître que C # ne mérite pas cela. C'est un langage merveilleux qui a absorbé tout le meilleur de Java, tout en prenant en compte et en corrigeant de nombreuses lacunes.

Lorsqu'il s'agit de développer des applications pour Android, l'un des environnements Visual et Xamarin Studio les plus fonctionnels est à votre service ici. De plus, connaître C # sera un avantage appréciable pour vous lorsque vous utiliserez Unity 3D. Avec cet ensemble, les possibilités sont infinies.

Python

Le fait qu'Android ne supporte pas l'utilisation de Python pour créer applications natives ne veut pas dire que c'est impossible. Les fans de ce langage de serpent ont développé de nombreux outils qui vous permettent de compiler du code Python à l'état souhaité.

Le framework le plus populaire est Kivy, qui peut facilement vous aider à créer une application Play Market en pur Python. Et si ce n'est pas le cas, de bons développeurs dans le chat vous aideront. Si vous ne le maîtrisez pas encore, nous vous recommandons d'y aller.

Kotlin

Dans le texte pro, j'ai déjà essayé d'expliquer pourquoi Kotlin lui-même est un excellent langage, et en conjonction avec Java, c'est encore mieux. En effet, sorti officiellement il y a seulement un an, Kotlin conquiert très rapidement le cœur des développeurs du monde entier avec une absence quasi totale de failles.

Avec son aide (plus précisément, avec l'environnement natif IntelliJ IDEA), vous ne rencontrerez aucun problème pour développer des applications natives pour Android. Dans le même temps, la demande de spécialistes Kotlin est encore faible, ce qui signifie qu'après avoir acquis de l'expérience en travaillant avec eux, vous risquez d'acquérir un avantage concurrentiel à l'avenir.

Langages Web

Ensemble de langages de travail Web standard : HTML, CSS et JavaScript. Sans connaître ces 3 langages, vous serez réduit à développer des applications dans un cadre plutôt étroit. Même si vous ne souhaitez pas toucher directement au Web dans vos futurs travaux, il est peu probable que les applications hybrides soient évitées.

Vous pouvez travailler avec HTML, CSS et JavaScript en utilisant les environnements PhoneGap Build ou, plus spécialisé, Adobe Cordova. Ils ne nécessiteront pas beaucoup de connaissances de votre part, mais ils fourniront le résultat. Ou du dernier, React Native de Facebook est déjà le prochain niveau de facilité d'interaction, mais peu d'expérience et de documentation se sont accumulées. En général, choisissez, le bénéfice est de quoi.

Lua

Un langage plus ancien que Java, beaucoup moins populaire, mais toujours demandé. Il présente un certain nombre d'avantages, tels qu'un typage dynamique, une syntaxe relativement simple, mais il a survécu jusqu'à ce jour grâce à son implication dans les jeux. C'est la commodité de créer une couche logicielle entre le moteur et le shell qui a ouvert les portes du monde des gadgets portables pour Lua.

Corona SDK est un environnement de développement d'applications mobiles multiplateformes, principalement des jeux, où l'outil principal est Lua. Depuis 2015, il est distribué gratuitement, conçu pour les développeurs novices, en plus vous pouvez trouver beaucoup de informations utiles, à la fois dans les segments anglophone et russophone de l'Internet.

C/C++

En fait, Google fournit aux développeurs deux environnements de développement : le SDK, qui est conçu pour fonctionner avec Java, et le NDK, où les langages natifs sont C/C++. Oui, bien sûr, vous n'écrirez pas une application entière en utilisant uniquement ces langages, mais avec leur aide, vous pouvez créer une bibliothèque que vous utiliserez plus tard. Aide Java connecter au corps principal du programme.

Malgré le fait que la grande majorité des développeurs ne se soucient pas du NDK, néanmoins, en utilisant cet outil, vous obtiendrez de meilleurs résultats en termes de performances et d'utilisation des ressources internes. Et c'est exactement ce qui distingue une bonne idée d'application d'une bonne implémentation sur Android.

Dans quelles langues écrivez-vous ?

L'ère du système d'exploitation Android approche de son dixième anniversaire. Bien que tant de temps se soit écoulé depuis la première version de ce système d'exploitation, cela ne signifie pas du tout que le train est parti, et il est trop tard pour apprendre à développer des applications Android. En fait, il est maintenant temps d'apprendre : il n'y a jamais eu autant de façons efficaces de créer des applications Android étonnantes.

Et tous les nouveaux Chromebooks ont maintenant et pour toujours pris en charge les applications Android : ils peuvent être téléchargés, installés et exécutés, comme dans leur environnement natif. Le marché des applications Android ne fait que croître. Vous ne devriez pas penser que le temps est passé - il n'est pas trop tard pour commencer. Tout ce dont vous avez besoin pour commencer : préparez-vous, respirez profondément, choisissez le bon langage de programmation - et commencez votre voyage.

Mais quel langage de programmation sera le meilleur pour vous ? Choisir le bon outil de développement est la première tâche que personne ne peut faire mieux que vous. Cela dépend beaucoup de l'expérience en programmation (ou du manque d'expérience dans des environnements de développement spécifiques), du confort personnel lors de l'utilisation d'un langage particulier. Heureusement, il y a une bonne sélection. Cet article passe en revue une sélection meilleures langues programmation pour android.

En ce qui concerne les applications Android, Langage Java ne peut jamais être le mauvais choix. En plus d'être le langage de programmation officiel de ce système d'exploitation, il est également le deuxième plus courant sur la ressource GitHub, et il est si populaire depuis plus de 20 ans. Cela signifie qu'il existe de nombreuses instructions et tutoriels pour Java, et qu'il n'y a absolument pas lieu de s'inquiéter de l'obsolescence de ce langage dans un futur proche.

Étant donné que le langage Java s'est largement répandu dans des dizaines d'industries de programmation, nous vous recommandons de commencer à l'apprendre avec des livres sur Java dans le contexte de l'écosystème Android. Bien sûr, Java est le même dans tous les environnements, mais des paradigmes et des expressions distincts aideront un esprit curieux à se plonger rapidement dans l'essence du développement d'applications Android. C'est la tâche que la plupart des livres sur le sujet se sont assignés.

Il convient de noter qu'en raison de l'âge vénérable de Java, il lui manque certaines des caractéristiques inhérentes aux langues plus jeunes. Pour les débutants, ce n'est pas si important, mais pour les programmeurs plus expérimentés qui passent à ce langage depuis, disons, Swift, Java peut provoquer des accès de claustrophobie au début.

Le langage de programmation Kotlin a été créé spécifiquement pour fonctionner sur des machines virtuelles Java. Cela signifie que les applications Kotlin sont compilées en code Java, ce qui leur permet de s'exécuter sur n'importe quelle machine prenant en charge un environnement Java. Et comme la plupart des machines prennent en charge Java, l'utilisation de Kotlin est un moyen relativement simple de développer des logiciels multiplateformes.

L'utilisation de Kotlin est une application dans produit logiciel tous meilleurs côtés Java, sans ses défauts. La syntaxe et les autres fonctionnalités de la programmation Kotlin sont modernes, claires et rapides. C'est vraiment un environnement de développement pratique. Là où Java semble encombrant, maladroit et démodé, Kotlin a l'air confortable, frais et même beau. Dans une certaine mesure, on peut considérer que Kotlin a été spécifiquement créé pour développer des applications Android.

Mais d'autre part? Le kotlin est un langage très jeune. Ses premières versions sont sorties en 2011, et la sortie officielle n'a eu lieu qu'en 2016. Bonne nouvelle : Kotlin est gratuit et open source. Il faut s'attendre à ce qu'il se développe à pas de géant. Mais dans tous les cas, il faudra plusieurs années avant que ce langage ne se révèle être un choix vraiment fiable.

C# est un langage de programmation incroyable ! Il a pris tout le meilleur de Java, laissant derrière lui les pires caractéristiques de ce langage. Et il a évolué dans la même bonne direction. Il semble que Microsoft ait vu le potentiel de Java et ait décidé de développer sa propre version, meilleure.

Pendant longtemps, un inconvénient majeur de l'utilisation de C# était qu'il ne fonctionnait que sur les systèmes Windows : le langage est basé sur le .NET Framework. Mais en 2014, cela a changé : Microsoft a ouvert le .NET Framework. De plus, en 2016, la société a acquis Xamarin, le développeur de Mono (un projet qui permet aux programmes C# de fonctionner sur diverses plateformes).

Le résultat de ces actes glorieux est qu'aujourd'hui, vous pouvez utiliser les environnements Xamarin.Android et Xamarin.iOS pour créer des applications mobiles dans Visual Studio ou Xamarin Studio. très bon moyen pour commencer le développement, car à l'avenir, il sera possible d'utiliser les outils de ce langage dans d'autres domaines - par exemple, la création jeux stimulants avec Unity et C#. exemples illustratifs applications construites en Xamarin ? MarketWatch - rien de plus, rien de moins.

Enfin, notons que jusqu'à récemment, le travail en Xamarin nécessitait des frais. Mais Microsoft a rendu cet environnement gratuit !

Bien qu'Android n'ait pas de support natif pour Python, il existe des outils qui vous permettent d'écrire des applications en Python, puis de les convertir en Android natif. applications apk. Un excellent exemple de la viabilité de Python en tant que véritable langage efficace. Les fans de Python qui veulent s'essayer au développement d'applications Android apprécieront certainement cette opportunité - sans se plonger dans la nature de Java.

Parmi les solutions les plus populaires pour convertir du code Python en APK se trouve le projet Kivy. Et ce n'est même pas dans sa nature Open source, et pas seulement pour Windows, Mac, Linux et iOS en plus d'Android. Kivy est conçu pour vraiment accélérer le développement d'applications. Quoi qu'il en soit, vous pouvez l'utiliser comme outil de prototypage. Tant de choses peuvent être faites avec seulement quelques lignes de code !

Cependant, en l'absence de support natif pour Python, il ne sera pas possible de profiter de l'environnement natif pour Android. Les applications écrites avec Kivy ont tendance à se compiler en fichiers APK plus volumineux, à démarrer lentement et à fonctionner généralement en dessous de la moyenne. Cependant, chaque nouvelle version est vraiment meilleure que la précédente, et les appareils mobiles aujourd'hui si puissant que des performances d'application sous-optimales ne signifient pas grand-chose. Que ce facteur ne soit pas un obstacle.

Quelques exemples d'applications Android écrites en Kivy : Kognitivo et Barly.

  1. HTML5 + CSS + JavaScript

Ce trio de langages, autrefois créé pour développer des applications frontales sur le Web, est depuis devenu quelque chose de plus. Désormais, les outils HTML5, CSS et JavaScript suffisent pour créer une grande variété d'applications pour les appareils mobiles et les PC classiques. Essentiellement, un programmeur crée une application Web qui peut utiliser toute la puissance et la magie des plateformes hors ligne.

Pour créer des applications Android de cette manière, vous pouvez utiliser Fonctionnalités d'Adobe Cordova est un framework open source qui prend également en charge iOS, Windows 10 Mobile, Blackberry, Firefox et bien d'autres systèmes d'exploitation. Cependant, aussi utile que soit Cordova, il faut beaucoup de travail pour y créer une application décente. Par conséquent, de nombreux programmeurs préfèrent le projet Ionic Framework (qui utilise "Cordova" pour le déploiement sur diverses plates-formes).

Exemples d'applications Android écrites en HTML5, JavaScript et CSS : Untappd et TripCase.

Il existe une autre possibilité : utiliser la librairie React Native. Il peut être déployé sur Android, iOS et plateforme " Applications universelles les fenêtres". Cette bibliothèque est utilisée par des spécialistes de Facebook, Instagram et autres. grandes entreprises vous pouvez donc compter sur sa fiabilité. L'entraînement n'est pas le plus facile, mais en ce qui concerne les finales, vous aurez entre les mains toute la puissance, la flexibilité et la commodité que vous pourriez souhaiter.

Lua est un ancien langage de script qui a été créé à l'origine comme une extension pour les programmes écrits dans des langages plus complexes : C, VB.NET, etc. Ce langage possède certaines caractéristiques qui distinguent Lua d'un certain nombre de langages similaires - par exemple, le début des tableaux avec 1 au lieu de 0, ou l'absence de classes natives.

Ainsi, pour certaines tâches, Lua peut être utilisé comme langage de programmation principal. Le meilleur exemple en est le SDK Corona. Avec Corona, vous pouvez créer des applications puissantes et riches en fonctionnalités qui peuvent être déployées sur Windows, Mac, Android, iOS et même Apple TV + Android TV. Corona a également des options de monétisation intégrées, et c'est un marché décent en termes de volume, où vous pouvez trouver des plugins utiles dans votre travail.

Le plus souvent, Corona est utilisé pour créer des jeux (par exemple, Fun Run 2 et HoPiko), mais il existe également des exemples d'utilitaires, ainsi que des applications d'affaires (Mes Jours et Tourisme Québec).

  1. C/C++

Pour créer des applications Android, Google propose officiellement deux environnements de développement :

  • SDK (utilise Java);
  • et NDK (utilise des langages natifs comme C et C++).

Notez que pour créer une application entière, utiliser C, C++ et Java "nu" ne fonctionnera pas. Au lieu de cela, le NDK vous permet de créer des bibliothèques dont les fonctions sont accessibles par des parties de code Java à partir d'une application.

Généralement, il n'est pas nécessaire d'utiliser le NDK. Cet environnement ne doit pas être utilisé comme principal, ne serait-ce que parce que vous devrez faire plus de codage en C/C++, et non en Java. L'existence du NDK est justifiée dans ces tâches lorsqu'il est nécessaire d'extraire autant de performances que possible lors de l'exécution de tâches de calcul complexes. Le NDK vous permet également d'intégrer des bibliothèques C et C++ dans votre application.

Mais d'autres fois, cela vaut la peine de s'en tenir à Java dans la mesure du possible. Développer des applications Android en C/C++ est beaucoup plus difficile qu'en Java. Et la plupart du temps, le gain de performance est trop faible.

Sur quelles applications aimeriez-vous travailler ?

Messagers, jeux, calculatrices, blocs-notes, joueurs. Les possibilités sont infinies! À bien des égards, ils sont illimités grâce aux langages de programmation et aux frameworks énumérés ci-dessus. Vous n'avez pas besoin de les étudier tous à la suite - seulement ceux qui sont utiles pour résoudre votre problème. Si, à l'avenir, vous avez besoin d'élargir vos propres connaissances, vous pourrez vous auto-éduquer le moment venu.

Enfin, nous vous conseillons la lecture de blogs dédiés au développement d'applications mobiles. Ils vous permettront de déterminer les ingrédients nécessaires à la préparation d'un application mobile et aidera à surmonter de nombreuses difficultés qui surgissent inévitablement sur le chemin de tous les programmeurs.