MIT App Inventor - Tout le monde peut créer une application mobile. App inventeur - mercredi de l'application Android Mercredi télécharger l'éducation app inventeur en russe
Inventeur de l'application - Mercredi du développement visuel des applications Android, nécessitant les connaissances de programmation minimale utilisateur. Conçu à l'origine dans Google Labs, après que la fermeture de ce laboratoire a été transférée à l'Institut technologique du Massachusetts. Au début mars 2011. Le Massachusetts Institute a lancé une version bêta publique du projet disponible sur le site Web app.inventor.mit.edu.
Cela fonctionne cet environnement de développement directement à partir du navigateur. Téléchargez et n'installez rien. Le résultat peut être visualisé sur le périphérique Android. Les applications finies peuvent être placées sur le marché du jeu.
Août 2015 app inventor 2 soutient langue russe.
Dans l'éditeur en ligne, les applications de l'inventeur de l'application 2 sont basées sur des composants standard qui constituent l'élément principal du développement d'applications Android.
Bloque l'inventeur de l'application. Concepts et principes importants
Les blocs d'inventeurs d'applications sont des instruments pour les composants d'exploitation et ressemblent à des énigmes.
Les blocs de ce concepteur d'applications Android sont divisés en deux grands groupes sur la base desquels ils affectent et sont liés à:
- reliant directement aux composants
- appliqué à l'application dans son ensemble
Commençons par S. blocs qui appartiennent à des composants. Ils peuvent être divisés en trois types faciles à distinguer entre:
1. Blocs décrivant les propriétés du composant. Ils sont verts et ressemblent à ceci:
cette unité indique la propriété de composant actuelle. Dans cette image, la structure de couleur d'arrière-plan est affichée pour le composant texte TextBox1. Cela implique la réception de la signification existante.
et ceci définit la valeur souhaitée du composant (attribuer la couleur de fond de TextBox11 ...). "SET" - SET. Ce type de propriétés de blocs pourrait être attribué aux commandants (gestionnaires), car il donne vraiment à la commande de modifier toute propriété composante, y compris les champs des champs. Cependant, les développeurs de l'inventeur de l'application ont décidé, mais aussi les propriétés également.
2. Les blocs d'événements, c'est-à-dire de ces blocs qui suivent la survenue de tout événement de l'application, par exemple en appuyant sur la touche, puis exécutez la commande Block. Ils sont peints en couleur bronze et ressemblent à ceci:
cette unité, par exemple, effectue une action en appuyant sur le bouton (lorsque vous êtes sur la touche3, cliquez dessus pour faire ...)
3. Commande de bloc, dans l'inventeur de l'application Cet appareil est souvent appelé le gestionnaire. Cette unité indique que vous devez faire avec le composant auquel appartient le bloc:
Spécifiquement, ce bloc provoque des données de la minuterie de périphérique.
Deuxième groupe de blocs, liée à tous, Organisé quelque peu différemment.
Pour commencer, voici leurs sous-groupes de liste:
- Blocs logiques. - blocs logiques
- Blocs mathématiques. - Blocs mathématiques
- Blocs de texte. - blocs de texte
- Répertorie les blocs. - Blocs pour gérer les listes
- Blocs de couleurs. - Blocs pour la gestion des couleurs
- Blocs de variables. - Blocs pour gérer les variables
- Blocs de procédures. - blocs de procédure.
Tous, à l'exception des blocs de procédures, sont incorporés dans d'autres blocs. C'est-à-dire qu'ils ne peuvent pas servir de bloc d'origine, contrairement aux événements appartenant à des composants - toutes les actions sont effectuées à tout événement avec des composants.
Ici, il convient de parler des types de "puzzles". Ainsi, vous avez probablement remarqué qu'il y a quatre puzzles d'espèce.
Il est évident de leur forme que toute chaîne de l'application mobile commence en premier. Ceci est un événement et il est assez logique qu'il initie toutes les actions supplémentaires. Et ce type ne diffère pas des applications adoptées dans ce concepteur pour Android.
Et voici les deux types de blocs suivants utilisant la typologie de l'inventeur de l'application, reportez-vous à différents types: propriétés et équipes (gestionnaires), respectivement. Mais sous la forme d'un casse-tête et, dans le sens, ils pourraient être attribués aux équipes, car ils fixent l'action. Disons deuxième Puzzle de puzzle donne à la commande d'attribuer une certaine valeur au composant, mais le troisième Puzzle - Appelez un composant avec une certaine valeur. De plus, ces énigmes sont "intermédiaires", ils ne peuvent pas être complétés avec une chaîne.
Et ici Quatrième La forme représente la valeur finale qui existe ou calculée et les chaînes se terminent. Par exemple, la quatrième image est la valeur actuelle du composant d'horloge.
La société Iticher annonce un concours de développement d'applications mobiles pour Android OS, créé dans le langage de programmation de l'application Inventor.
Conditions de la concurrence de détention
- Réception et enregistrement des travaux concurrentiels: du 1er janvier au 15 mai 2017.
- Examen des œuvres du jury compétitif - du 15 au 30 mai 2017.
- Annonce des résultats de la concurrence le 30 mai au Portal du concours.
Sous l'opération, nous comprendrons la séquence d'actions, chacune pouvant contenir un nombre différent de blocs.
Toute opération peut être placée dans l'unité de traitement d'événement ou dans l'unité de procédure. L'emplacement de l'opération dans l'unité de traitement d'événement est caractérisé par un simple, mais à l'avenir, cela peut entraîner de nombreux problèmes, contrairement à l'utiliser dans la procédure, qui obtiendra un algorithme flexible. Considérez ceci sur l'exemple d'un fonctionnement simple d'affectation de la variable globale de la liste vide constituée de deux blocs (Fig. 1).
Figure. 1. Options de fonctionnement.
Lors de la mise en place d'une opération dans l'unité de traitement de l'événement composant (version supérieure), elle est attachée de manière rigide et devient inaccessible d'appeler d'autres blocs. Si cette opération doit être appelée d'un autre bloc, elle devra être copiée. Créer des copies de l'opération est indésirable, car lorsqu'il modifie son algorithme, vous devrez entrer chacune d'elles. Cela augmente la probabilité d'erreurs différentes: vous pouvez oublier de réparer une sorte de copie, commettre une erreur lors de la copie des blocs, de les insérer, etc. Placer l'opération dans l'unité de procédure vous permettra de l'appeler à partir d'autres blocs et d'éviter les erreurs décrites ci-dessus.
Lorsque vous travaillez dans l'éditeur de bloc, il est parfois nécessaire d'appeler différentes versions d'une opération ou d'opérations différentes. Pour ce faire, vous pouvez créer de nouveaux composants avec de nouvelles unités de manutention d'événements ou utiliser un bloc BTNExecute existant en plaçant un appel à cette opération ou à cette opération. À la suite du remplacement, les opérations déconnectées se transformeront en blocs "flottants" (Fig. 2), qui n'appartiennent à aucun bloc de groupe.
Figure. 2. Blocs "flottants".
S'il existe de nombreux blocs flottants sur le champ de travail, il peut ne pas être facile de les traiter. Si tout est clair avec le bloc inférieur - il s'agit d'un bloc d'appel d'une procédure, ce qui rend les unités de blocs en haut de la photo? Est-ce une opération ou une action distincte qui entre ou a-t-elle été incluse dans une autre opération? Mais alors où est le reste de cette opération? L'ajout d'une opération à l'unité de procédure vous permettra de vous débarrasser des blocs "flottants" incompréhensibles.
Pour exécuter le bloc, il n'est pas nécessaire de le placer dans le gestionnaire d'événements. Vous pouvez cliquer avec le bouton droit de la souris et dans le menu contextuel qui apparaît, sélectionnez l'option IT.
Un autre inconvénient de l'opération dans le gestionnaire d'événements est lié au fait que, lors de la suppression accidentelle d'un composant dans le concepteur, non seulement tous les blocs liés à ce composant, mais également tous les blocs investis dans eux sont supprimés. En particulier, l'opération consistait en un grand nombre de blocs (figure 3). Si vous supprimez le composant BTNTEST, le bloc BTNTest.click sera supprimé avec tout son contenu.
Figure. 3. Blocage indésirable des blocs dans un gestionnaire d'événements.
Quelle opération effectue des blocs dans cette image? Il est difficile de répondre tout de suite. Et lorsque vous les placez dans une procédure séparée, tout deviendra immédiatement compréhensible de son nom SetVarvalue - définit la valeur de la variable (Fig. 4).
Figure. 4. Regroupement des côtés dans la procédure.
Les blocs de procédure et les variables locales ont une configuration disponible lorsque vous avez cliqué sur l'icône du matériel. Pour les blocs de procédures, il consiste à ajouter des paramètres d'entrée à ceux-ci et pour les blocs de variables locales à la création d'entrées supplémentaires. Cela permettra à quatre variables de se transformer en un seul bloc avec quatre variables (Fig. 4). Est un tel équivalent de conversion? Pas. Un bloc avec plusieurs variables locales a une étendue qui ne permet pas à l'intérieur de l'intérieur d'obtenir les valeurs de ses variables. Par exemple, la variable de valeur est impossible (Fig. 4) d'affecter la valeur de la variable de clé.
Nous énumérons les inconvénients de l'opération dans l'unité de traitement d'événement:
- Liaison difficile au bloc d'événement d'un certain type de composant sélectionné
- Il est impossible d'appeler l'opération d'autres blocs (cela signifie que cela ne peut pas devenir bibliothèque)
- Supprimer l'opération lors de la suppression du composant
- La formation de groupes de blocs "flottants" incompréhensibles
- Il est difficile de comprendre rapidement ce que l'opération fait
Débarrassez-vous de tous ces inconvénients est très simple si toutes les opérations sont placées dans la procédure.
Lors de la création d'algorithmes de simplicité et de rapidité, vous souhaitez que différentes opérations mettent dans une procédure, ce qui entraînera une augmentation rapide du nombre de blocages et de difficultés à comprendre son travail. Pour exclure cela, une règle simple est largement utilisée dans la programmation:
Une fonction (procédure) est une opération
Cette règle est tirée de la pratique de la vie. Imaginez que vous allumez la lumière dans la pièce et, en même temps, la télévision est allumée, climatisée et éteignant l'ordinateur. Aimez-vous? Non, car cela conduira à la confusion et aux situations désagréables.
En figue. 4 Au début du bloc, il existe un défi de quatre procédures - GetKey (Obtenez la clé), GetNewval (obtenez une nouvelle valeur), getKeys (obtenez une liste de clés) et getIndex. Chacune de ces procédures effectue une opération. Après eux, le bloc IF est en cours d'exécution, dans lequel une opération de procédure SETVARVALUE1 est exécutée.
Est-il possible d'utiliser global dans les procédures au lieu de variables locales? Vous pouvez, mais ne le faites pas. L'utilisation de variables globales dans la procédure, d'abord, le lie durement à elles et, en conséquence, à cette application, et, deuxièmement, à l'aide de variables globales, des blocs externes de différentes applications peuvent influer sur le mécanisme interne de la procédure, qui est assez indésirable. Que peut-il arriver si les passagers de bus ont accès à son mécanisme?
Les variables locales sont une sorte de tampon. Si le nom de la variable globale change, cela ne brisera pas le travail de la procédure, car les noms de variables locales sont utilisés à l'intérieur, ce qui n'a pas changé. Dans l'inventeur de l'application lors de la modification du nom de la variable globale, il changera automatiquement dans tous les blocs en l'utilisant. D'ici, une conclusion importante qui existant dans l'APP inventor Automation pour vérifier l'exactitude des types variables, le renommage de variables et sinon, d'une part, simplifie le développement des applications, libérant ainsi le développeur de penser à ces problèmes et, sur le D'autre part, favorise la compétence de développement de la compilation de négligence d'algorithmes. De manière générale, cette compétence peut se développer lors de la programmation dans n'importe quelle langue. Comment éviter cela? Utilisez des recommandations pour créer un «code de nettoyage», qui est écrit beaucoup de livres. MIT App Inventor sera en mesure d'utiliser uniquement une petite part de ces recommandations, mais les suivre pour améliorer les algorithmes et leur lisibilité avec n'importe quel moyen de les créer - sur une feuille de papier, une carte, lors de la modification du code ou de travailler avec des blocs.
La règle ci-dessus doit être utilisée et dans le cas de l'utilisation d'unités de traitement des événements. En figue. 4 Cliquez sur le gestionnaire d'événements produisant une seule opération - provoque la procédure. Et si vous devez appeler plusieurs procédures du gestionnaire d'événements? Ensuite, vous devez comprendre que ce groupe de procédure effectue une ou plusieurs opérations? Si un, alors tout est en ordre. Par exemple, dans l'initialisation de l'application, de nombreuses procédures sont appelées, mais toutes sont combinées à une seule opération - initialisation.
Plus les opérations effectuent la procédure, plus son lien avec ce projet est étroitement, et plus il est difficile de l'adapter à travailler dans une autre application. Idéalement, la procédure générale est souhaitable de faire une indépendance de cette application afin qu'elle soit possible de le placer dans sa bibliothèque de réutilisation dans d'autres applications.
En tant que référentiel de procédures de bibliothèque dans l'inventeur de l'application, vous pouvez utiliser les écrans d'application appropriés. Les bibliothèques avec un petit nombre de procédures peuvent être placées ensemble sur un écran et les grands sur une personne. Dans ce dernier cas, le mouvement de tous les blocs de bibliothèque dans le sac à dos peut être effectué en utilisant une opération.
Si les bibliothèques ont beaucoup accumulé, vous pouvez les organiser en tant que modèle de demande dans lequel le premier écran est vide. Nous utilisons ce modèle lors de la création d'une nouvelle application et, après sa préparation, créez une copie à partir de laquelle tous les écrans de la bibliothèque sont supprimés.
Pour éliminer le changement de renommage des variables globales et enfreindre le travail des procédures de la bibliothèque lors de la copie d'un sac à dos à un écran d'application pouvant avoir des variables globales avec les mêmes noms, les noms des blocs de bibliothèque sont nécessaires à l'avance avec les préfixes indiquant la bibliothèque. Si la bibliothèque de travail avec une liste de couples est appelée libpes. Ensuite, vous pouvez les variables, les procédures et les composants de celui-ci afin: libpes_name, libpes_setvalue, libpes_btnexecute.
Pour un fonctionnement plus pratique avec un grand nombre de blocs et les déplacer dans le champ de travail, en plus des boutons de mise à l'échelle de la fenêtre, il est utile d'élaborer la zone de travail du navigateur à l'aide de la combinaison CTRL-ou CTRL +.
Aujourd'hui, sur le marché du travail, nous constatons un véritable boom sur des spécialistes du développement d'applications d'application pour les appareils mobiles. La profession de Développeur d'applications mobiles devient l'une des plus recherchées. Mais le système éducatif est-il prêt à répondre à ce défi? Après tout, afin de diagnostiquer la capacité de programmer et de jeter une base solide des connaissances et des compétences à temps, vous devez commencer par l'âge scolaire anticipé.
Jusqu'à récemment, le problème de l'apprentissage de la programmation des écoliers de la classe moyenne semblait intraitable - principalement en raison de l'absence d'un outil, qui, d'une part, serait suffisamment facile à apprendre, et de l'autre, il permettrait de créer vraiment debout des produits. Les tentatives visant à former des écoliers par Basica ou Pascal n'ont abouti que le fait que l'objet Informatique n'était qu'un cercle très étroit d'étudiants - ceux qui, en raison de caractéristiques intellectuelles, d'éducation familiale ou d'une chance d'urgence avec l'enseignant, ont réussi à faire progresser dans le développement. de la programmation plus loin que d'autres. Pour la plupart des autres écoliers, l'informatique est restée quelque chose d'inaccessible.
La situation a commencé à changer au début des années 2000, avec l'émergence et le développement de langages de programmation visuels, dont le produit phare est considéré comme le langage des rayures. Cette langue a fait une véritable révolution dans la programmation d'enseignement scolaire pour le système d'exploitation de bureau. La programmation sur Scratch est aussi simple que la mosaïque-puzzle pliante des enfants. Les opérateurs et les procédures linguistiques sont des blocs de couleur. Les glisser et les connecter, nous créons un programme. Il est tout simplement impossible de faire une erreur dans la syntaxe de cette langue - si les blocs ne se tiennent pas à côté, le puzzle ne fonctionne tout simplement pas.
Inventeur de l'application
Le développement naturel de cette approche a été le langage de programmation de l'APP inventor, développé par le Professeur Massachusetts Institute of Technology (MIT) Halome Abelson en 2010. Il est basé sur le même principe de faire glisser les briques visuelles et de collecter le programme à partir de blocs.
La différence entre l'inventeur de l'application à partir de zéro est que l'inventeur d'applications n'est pas orientée vers l'utilisation de bureau, mais est destinée à créer des applications pour un périphérique mobile - un smartphone ou une tablette avec OS Android. Il sait comment, par exemple, "comprendre" les données d'accéléromètre de données du gadget mobile, contrôlent la caméra intégrée, voit la manière dont le téléphone est orienté dans l'espace et bien plus encore.
L'inventeur app est une application complètement nuageuse. Pour commencer à programmer, vous n'avez besoin que d'Internet et du navigateur. La transition vers la page de langue est effectuée sur ce lien. Interface en anglais et en russe.
L'interface linguistique de la programmation de l'inventeur MIT est composée de deux parties principales - designer et editeur Blokov.
DANS designer Nous construisons notre application à partir d'éléments - écrans, boutons, cellules, images, sons.
DANS editeur Blokov Nous programmons le comportement de ces éléments.
L'interface d'inventeur de l'application est simple et intuitive. Si vous souhaitez essayer d'enseigner la programmation sur l'inventeur de l'application à l'école, nous vous recommandons le site Web de l'App Entard.ru, qui a collecté du matériel de formation pour les enseignants.
Concurrence pour les écoliers
Et des écoliers qui se tiendront sur la programmation de programmation sur l'inventeur de l'application à l'école ou peu de côte peuvent participer à la concurrence pour développer leurs propres applications mobiles sur l'inventeur de l'application. Le gagnant de la compétition recevra un ordinateur de tablette de Samsung. La date limite de soumission du travail - jusqu'au 15 mai 2016.
Station météo à MIT App Inventor 2 - Application de la station météo pour téléphones Android Créée à l'aide d'un service en ligne.
L'annonce de la station météorologique est décrite dans l'article où nous avons examiné la station météo, créé le skatch pour Arduino et l'appareil de la station météo. Eh bien, nous comprendrons aujourd'hui plus en détail comment créer une application Android et afficher toutes les données obtenues à partir de notre station météo sur le téléphone.
Pour créer une station météo d'application à MIT App Inventor 2, vous aurez besoin de:
1. L'image d'arrière-plan de la taille de 540x960 pixels (la taille de l'image d'arrière-plan dépend de la taille de l'écran de votre appareil)
2. Icône d'application pour l'écran principal 128x128 pixels (au format PNG32)
3. Boutons Icônes dans l'application en deux couleurs, la taille de 80x80 pixels
Lorsque nous avons préparé toutes les images nécessaires à l'application, vous pouvez commencer à travailler dans MIT App Inventor 2. Pour commencer, nous aurons besoin de tels composants:
- ListPicker1 - Pour démarrer la connexion Bluetooth, sélectionnez les périphériques Bluetooth disponibles et le mode d'affichage de l'état de la connexion.
- Label3 - Sauvegarde, pour afficher des informations supplémentaires (temporairement ne fonctionne pas, vous ne pouvez pas ajouter)
- Label1 - Pour afficher les données reçues de Arduino
- Label2 - Pour afficher l'inscription (température dans la pièce, la température dans la rue, la pression, etc.)
- HorizontalRangement1 - Mode d'alignement des éléments horizontalement, dans nos cas de modes de commutation)
- Bouton1 - bouton pour allumer le mode "Température extérieure"
- Bouton2 - Allumer la température en mode pièce
- Bouton3 - bouton pour allumer le mode "pression en mm.rt.st."
- Bouton4 - Mode d'inclusion des boutons "Humidité en%"
- Bouton5 - Bouton de déconnexion (invisible)
- Horloge1 - minuterie
- BluetoothClient1 - Composant pour travailler avec Bluetooth (recevoir et envoyer des données)
Maintenant, allons à bloquer le mode de programmation dans le MIT App Inventor 2 pour commencer à proposer des fonctionnalités pour ListPicker
puis pour la minuterie
recevoir des données via Bluetooth
pour les boutons 1-4.
pour le bouton d'arrêt
Après toutes les étapes du développement adoptées, nous testons l'application au téléphone et vérifions les performances.
Vous pouvez agrandir la fonctionnalité intégrée de l'inventeur d'applications à l'aide de la technologie et des extensions Web. Sur le réseau, vous pouvez trouver des extensions payantes et libres (environ 200 sur Puravidaapps.com), mais les questions se posent et dans quelle mesure il est difficile de créer la vôtre, que peuvent-ils donner de temps et de mieux faire quelque chose d'autre?
Tous les composants et blocs disponibles dans l'inventeur de l'application appartiennent à l'intégré (interne) et à l'expansion à l'extérieur.
Les fonctionnalités intégrées offrent une fonctionnalité intéressante pour les utilisateurs novices, satisfaisant pour expérimenté et insuffisant pour les programmeurs. Dans le même temps, la plupart des utilisateurs préféreront charger des extensions prêtes à l'emploi et ne pas les développer. Il suit une conclusion simple que le développement des extensions peut être intéressant, principalement des utilisateurs et des passionnés expérimentés. Les débutants organiseront pleinement des capacités intégrées et des extensions existantes, et les programmeurs s'engagent dans des extensions ne sont pas intéressées par la raison de la nécessité d'effectuer du double travail. Pourquoi perdre du temps à créer et à déboguer l'expansion de la fonctionnalité limitée, puis à l'utiliser pour créer une application de fonctionnalité limitée, si vous pouvez écrire immédiatement un code sur Java, en utilisant toutes les fonctionnalités disponibles de Android Studio IDE et API Android?
Créer des extensions pour AI est facile s'il existe une sorte d'expérience de programmation et de comprendre les fondements de l'OOP, mais dans les raisons susmentionnées, les unités sont sérieusement engagées. Créer des extensions fonctionnelles est irréalisable, mais écrire des ajouts simples pour développer la fonctionnalité intégrée ou la création d'une nouvelle peut sembler intéressante et utile en termes de pratique. Mais ici, vous devez décider de l'approche. Vous pouvez suivre le concept de programmation AI - visuelle ou pour élargir ses éléments de programmation de texte.
Si vous dites rudyly, l'inventeur de l'App est similaire à celui de l'iceberg, dont le haut est visible pour les utilisateurs sous forme de fonctionnalité intégrée, et dans l'eau est également indisponible beaucoup plus. Cela se fait spécifiquement conformément à l'objectif de cet IDE, nécessitant des utilisateurs de connaissances de programmation minimales. Le modèle de travail dans l'inventeur d'applications n'est pas initialement conçu pour une plus grande fonctionnalité. L'ajout de nouvelles propriétés entraînera une augmentation du nombre de blocs dans la progression géométrique. Par exemple, l'ajout de la propriété de transparence entraînera l'apparition de deux blocs pour chaque widget (pour installer et renvoyer la valeur). Si de tels widgets 5, le nombre de blocs augmentera par 10. Ajout de 10 propriétés, 100 blocs reçus à la sortie. De plus, de nouvelles propriétés dans le concepteur apparaîtront à cela. Dans ces conditions, l'approche "Simple IDE + expansion" semble raisonnable, mais pas pour ceux qui préfèrent les bonnes fonctionnalités "de la boîte" sans la nécessité de rechercher et d'installer des ajouts.
Propriétés de configuration individuelles des objets et tâche des blocs durs des blocs à la phase de développement d'applications, d'une part, simplifie le développement et évite un grand nombre d'erreurs, mais conduit à des applications statiques. Si un autre bloc est attaché à un bloc, cela est pour toujours. Changer la propriété ou sélectionnez un autre objet à la phase d'exécution, il est possible uniquement si cette fonctionnalité était initialement posée lors de la phase de développement. Pour ce faire, utilisez l'accès indirect aux objets. Par exemple, vous pouvez créer une liste de paires "nom d'objet - objet" pour tous les objets, puis utilisez-la dans des fonctionnalités pour accéder à différents objets. Dans ce cas, l'unité de réception ne sera pas associée à un objet spécifique, mais avec une liste à partir de laquelle vous devez obtenir sur son nom de clé.
Si ce qui précède ajout de la complexité avec la mise en œuvre des opérations de groupe, le manque de widgets, de méthodes et d'autres nuances de la fonctionnalité intégrée est claire, la raison de l'apparition d'AppyBuilder, de Thunkable, de la fabrication de makéroïdes et d'autres, dans lesquelles l'augmentation de la La fonctionnalité est mise en œuvre en raison du nombre de composants sera comprise. Plus de composants - Plus de blocs. Mais avec l'aide de l'expansion, il est possible d'augmenter la fonctionnalité de manière qualitative, par exemple, d'utiliser un bloc pour accéder à des dizaines de dizaines de propriétés d'objets. Ceci est déjà vraiment intéressant car il complète la programmation visuelle des éléments textuels textuels pour compenser un certain nombre de lacunes de la fonctionnalité AI intégrée.
Les extensions seront-elles capables de créer des extensions qui sont faiblement familiarisées avec la programmation? Oui, Simple sera en mesure d'utiliser l'approche "Copier et changer", mais une certaine préparation est toujours requise. Sans cela, ce sera incompréhensible pourquoi l'extension n'est pas compilée et ce qui est écrit à l'écran. Il convient également de dire qu'une partie de l'expansion travaillant avec des objets Android est préférable de créer et de déboguer dans le studio Android.
Le développement des extensions conviendra à ceux qui, en principe, conviennent à l'inventeur de l'application, mais je voudrais compléter quelque chose, améliorer et simplifier, tout en pratiquant Java. Si tel est votre cas, nous commencerons par le déploiement de l'environnement de développement.
Vkontakte a un groupe Extensions pour l'inventeur d'applications Lorsque le formulaire de vidéo et de texte donne un guide étape par étape pour créer et configurer l'environnement de travail, ainsi qu'un exemple simple qui renvoie le test Word. Dupliquer ce matériel n'a pas de sens, mais l'exemple de l'exemple considérera comme une introduction rapide au sujet.
package VLAD; Importer com.google.appinventor.components.Runtime. *; Importer com.google.appinventor.components.annotations.designerComponent; Importer com.google.appinventor.comPonts.annotations.designerProperty; importer com.google.appinventor.components.annotations.propertycategory; Importer com.google.appinventor.comPonts.Annotations.SimpleEvent; Importer com.google.appinventor.comPonts.Annotations.Simplefunction; Importer com.google.appinventor.comPonts.Annotations.SimpleObject; Importer com.google.appinventor.comPonts.Annotations.SimpleProperty; Importer com.google.appinventor.components.common.componentCategory; Importer com.google.appinventor.components.common.propertytypeconstants; Importer com.google.appinventor.components.common.yaNversion; Importer com.google.appinventor.components.Runtime.util.sdklevel; @DesignerComponent (version \u003d yéversion.notier_component_version, catégorie \u003d compositionCategory.extension, description \u003d "Ceci est une extension de test", non visible \u003d true, iconname \u003d "images / notifier.png") @simpleObject (externe \u003d true) TesTextension de la classe finale publique Extend AndroidnonVissiblecomponent implémente ComposantContainer (Super (Super (SUPER (Conteneur. Formulaire $ ());) @simplefunction (description \u003d "Cette fonction renvoie la chaîne \\" Test \\ "String") (Test ";))
Le code de poste comprend un code de classe Java et d'annotation, en commençant par le symbole @. Les annotations sont utilisées pour indiquer que le bloc de code sous eux doit être traité par un simple compilateur. Un simple compilateur analyse des annotations et intègre une extension de l'application mercreday app inventor - crée une fonction Block (Function ou Propriétés), le champ d'édition du concepteur et effectue un autre travail.
@DesignerComponent indique les paramètres généraux du composant et ce qu'il fait référence à la catégorie des extensions et n'est pas univocal (vous pouvez actuellement créer uniquement des composants d'extension non valides)
@SimpleObject pointe sur un composant et le champ externe \u003d VRAI est que le composant est externe
@SimpleFunction Indique la fonction Compiler pour laquelle vous devez créer un bloc. Si la fonction renvoie une valeur, l'échappement apparaîtra à gauche. Si la fonction a des paramètres, les excavations correspondantes seront du côté droit.
Les codes source des classes peuvent être visionnés dans les administrateurs correspondant aux noms de packages:
com / Google / AppInventeur / Composants / Runtime - Cours de construction.
Com / Google / AppLeventrice / Composants / Annotations - Classes Annotations
Com / Google / Applentant / Composants / Common - Cours d'utilisation générale
Com / Google / AppInventeur / Composants / Runtime / Util - Classes Utilitaires
Actuellement, en utilisant l'extension, vous pouvez créer uniquement un composant invisible. Si vous avez besoin de créer un composant visuel, faites glisser sur le champ de travail du concepteur, ainsi que les widgets conçus, il prendra sa propre copie locale de l'inventeur de l'application.
Essayez de changer l'inscription, compiler, installer et exécuter le bloc. Si tout se passe, l'environnement de travail est configuré et vous pouvez continuer à créer des choses plus pratiques et plus intéressantes.