Aplicații gata de inventator de aplicații 2. App Inventor este un mediu de dezvoltare vizuală pentru aplicații Android. Blocurile App Inventor. Concepte și principii importante

Îmi amintesc că într-unul dintre articolele de pe App Inventor am scris că a existat o încercare de rusificare, dar nu mi-a plăcut prea mult. nici nu-mi amintesc de ce. Între timp, rusificarea din App Inventor2 a dispărut.
Dar lumea nu stă pe loc și aici avem din nou App Inventor în rusă. Acest lucru s-a întâmplat datorită eforturilor entuziaștilor de la Comunitatea „Învățare cu Google”.. În continuare voi încerca să-mi dau seama ce s-a întâmplat, dar acum, în primul rând, aplauze pentru entuziaști! Ei bine, pur și simplu pentru că a ieșit destul de bine, după părerea mea, iar munca a fost necesară din toate punctele de vedere.

Dar, de la entuziasm la acțiune.
Puteți trece la rusă în meniul derulant de selecție a limbii din dreapta sus.

Acum ce mi-a placut:
Traducerea competentă și plăcută în limba rusă a diferitelor meniuri de pe desktop-urile „Designer” și „Blocks”

Acest lucru va permite imediat unei persoane departe de programare și limba engleză să nu se piardă. Eu însumi sunt departe de primul, și doar puțin mai aproape de al doilea, așa că îmi place, la naiba! Deși sunt deja obișnuit cu interfața în engleză.
Facem clic pe întrebarea de lângă ea în meniul „Paletă” și ce vedem?

Bah! Da, acesta este un mic indiciu, tradus și în al nostru, cei mari și puternici. Grozav de asemenea! Dacă mi-am dat seama de un buton fără a apela la un dicționar, atunci, de exemplu, pentru a-mi da seama de sprite, trebuia să mă scarpin în cap. Și aici totul este pe un platou de argint.
Să mergem mai departe și să ne uităm la blocuri. Și aici există splendoare deplină și rusificare.

Recunosc sincer că se pare că mi-am dat seama de IA (bine, bine, doar o parte din ea), dar unele blocaje mă fac să mă încordez pentru că, din nou, engleza mea, din păcate, este șchioapă. Prin urmare, App Inventor în limba rusă este aici pentru a vă ajuta.
Există, de asemenea, un index de eroare în App Inventor. Și băieții lui nu l-au ignorat.

În general, repet, mi-a plăcut rusificarea.
Există, desigur, mici greșeli: de exemplu, unele cuvinte lipsesc în „Proprietăți” componente.

Dar, Dumnezeule, acesta este un lucru atât de mic!
Da, aici, sfaturile pentru blocuri sunt încă în engleză. Dar înțelegerea lor corectă lipsește adesea.

Acum despre dacă voi trece personal la versiunea rusificată. Cel mai probabil nu, și iată de ce: marea majoritate a limbajelor de programare folosesc engleza. De aici concluzia – oricine dorește să avanseze mai departe în învățarea programarii trebuie să lucreze cu limba originală. Si vreau.

Și următorul argument: în procesul de a face cu AI, mi-am ridicat nivelul de engleză. Și acest lucru este, de asemenea, foarte util.
Dar! Voi apela în continuare la App Inventor în limba rusă, deoarece nu totul este întotdeauna clar. Și mai mult, nu aveți întotdeauna timpul și dorința de a învăța o limbă străină dacă aveți nevoie să vă scrieți, de exemplu, o aplicație de ceas cu alarmă cu propriile caracteristici. Și aici App Inventor în rusă vă va ajuta. Ce se întâmplă dacă doriți să învățați cum să creați aplicații mobile pentru copiii care tocmai au început să învețe limba engleză? Da, cu IA vorbitoare de engleză, le vei încurca doar capetele. La urma urmei, amintiți-vă că acest lucru a fost creat pentru antrenament.
Așadar, munca depusă merită toată atenția și respectul. Și, fără îndoială, folosiți.
De asemenea, ar fi bine ca băieții să creeze un manual de rusă complet... Oprește-te! Stop! Ce voi face atunci?

În această postare vă voi prezenta MIT App Inventor 2 software și vă voi arăta de ce aveți nevoie pentru a începe rapid să construiți aplicații Android care interacționează și controlează Arduino.

Iată conținutul care va fi acoperit în această postare:

  • De ce MIT App Inventor 2 este o alegere bună?
  • Accesarea aplicației MIT Inventor 2
  • Cum să controlezi Arduino cu MIT App Inventor (Bluetooth)
  • Prezentare generală a MIT App Inventor
  • Proiecte cu MIT App Inventor
  • Aplicații Android pentru Arduino cu MIT App Inventor 2

Vă prezentăm MIT App Inventor 2

MIT App Inventor 2 este un serviciu gratuit simplu și intuitiv pentru crearea de aplicații Android. Dacă doriți să începeți cu MIT App Inventor, nu trebuie să descărcați sau să instalați niciun program pe computer, deoarece software-ul este bazat pe cloud, așa că creați aplicațiile direct în browser (Chrome, Mozilla, Safari, Internet Explorer). , etc).

De exemplu, aveți nevoie doar de o conexiune la internet pentru a crea aplicațiile.

De ce MIT App Inventor este o alegere bună?

  • MIT App Inventor 2 este intuitiv și simplu de utilizat.
  • Nu trebuie să fii un expert în programare sau design pentru a crea aplicații minunate care pot face lucruri utile.
  • Crearea designului este la fel de ușoară ca și selectarea și plasarea widget-urilor pe ecranul smartphone-ului.
  • Codul se face cu blocuri de puzzle drag and drop.

Oricine poate învăța cum să-și creeze propriile aplicații cu MIT App Inventor 2 cu câteva ore de practică.

Accesarea aplicației MIT Inventor 2

Cele mai frecvente module Bluetooth utilizate cu Arduino sunt HC-05 bluetooth, HC-04 și HC-06.

Pentru mai multe informații despre modulul bluetooth, puteți consulta această postare de blog:

Modulul Bluetooth funcționează cu date seriale. Aceasta înseamnă că Arduino trimite informații și modulul Bluetooth le primește prin serial (și invers).

Următoarea figură explică cum circulă informațiile din aplicația Android către Arduino.

Smartphone-ul dvs. trimite informații către modulul Bluetooth prin Bluetooth. Apoi, modulul Bluetooth trimite informațiile prin comunicare serială către Arduino. Acest flux funcționează și invers: Arduino trimite informații către modulul Bluetooth care le trimite către smartphone prin Bluetooth.

Prezentare generală a MIT App Inventor

Acesta este un curs pas cu pas pentru a vă ajuta să creați aplicații Android interesante pentru Arduino, chiar și fără experiență anterioară! O colecție de 8 + 1 proiecte.

Sper că ați găsit această postare utilă.

Prin operare înțelegem o succesiune de acțiuni, fiecare dintre acestea putând conține un număr diferit de blocuri.

Orice operație poate fi plasată fie într-un bloc de procesare a evenimentelor, fie într-un bloc de procedură. Locația operației în blocul de procesare a evenimentelor este simplă, dar în viitor acest lucru poate duce la multe probleme, spre deosebire de utilizarea acesteia într-o procedură, care vă va permite să obțineți un algoritm flexibil. Să luăm în considerare acest lucru folosind exemplul unei operații simple de atribuire la o variabilă globală a unei liste goale, formată din două blocuri (Fig. 1).

Orez. 1. Opțiuni pentru locația operațiunii.

Când o operațiune este plasată în blocul de procesare a evenimentelor unei componente (opțiunea de sus), aceasta este strâns legată de acesta și devine inaccesibilă pentru apeluri din alte blocuri. Dacă această operație trebuie apelată dintr-un alt bloc, va trebui să fie copiată. Nu este indicat să creați copii ale operației, deoarece dacă algoritmul acesteia se modifică, va trebui să faceți modificări la fiecare dintre ele. Acest lucru crește probabilitatea apariției diferitelor erori: este posibil să uitați să corectați o copie, să faceți o greșeală când copiați blocuri, le lipiți etc. Plasarea unei operații într-un bloc de procedură vă va permite să o apelați din alte blocuri și să evitați erorile descrise mai sus.

Când lucrați în editorul de blocuri, uneori trebuie să apelați versiuni diferite ale aceleiași operațiuni sau operațiuni diferite. Pentru a face acest lucru, puteți fie să creați componente noi cu blocuri noi de procesare a evenimentelor, fie să utilizați un bloc btnExecute existent, efectuând un apel la o anumită operațiune din acesta. Ca urmare a înlocuirii, operațiunile detașate se vor transforma în blocuri „plutitoare” (Fig. 2), care nu aparțin niciunui bloc de grup.

Orez. 2. Blocuri „plutitoare”.

Dacă există o mulțime de astfel de blocuri plutitoare pe câmpul de lucru, atunci tratarea lor poate să nu fie ușoară. Dacă totul este clar cu blocul de jos - acesta este un bloc de apel de procedură, atunci ce face concatenarea blocurilor în partea de sus a imaginii? Este aceasta o operațiune separată sau o acțiune care este sau a fost inclusă într-o altă operațiune? Dar atunci unde este restul acestei operațiuni? Adăugarea unei operații la un bloc de procedură vă va permite să scăpați de blocurile „plutitoare” ciudate.

Pentru a executa un bloc, nu este necesar să îl plasați într-un handler de evenimente. Puteți să faceți clic dreapta pe el și să selectați opțiunea Do it din meniul contextual care apare.

Un alt dezavantaj al plasării unei operații într-un handler de evenimente este că, dacă ștergeți accidental o componentă din designer, nu numai toate blocurile care aparțin acestei componente vor fi șterse, ci și toate blocurile imbricate în ele. Va fi deosebit de enervant dacă operațiunea a constat dintr-un număr mare de blocuri (Fig. 3). Dacă ștergeți componenta btnTest, blocul btnTest.Click cu tot conținutul său va fi șters.

Orez. 3. Gruparea nedorită de blocuri în gestionarea evenimentelor.

Ce operație efectuează blocurile din această imagine? E greu să răspunzi imediat. Și când le plasați într-o procedură separată, totul va deveni imediat clar din numele său setVarValue - setează valoarea variabilei (Fig. 4).

Orez. 4. Gruparea laturilor în procedură.

Blocurile de procedură și variabile locale au setări disponibile făcând clic pe pictograma roată. Pentru blocurile de procedură, constă în adăugarea parametrilor de intrare la acestea, iar pentru blocurile de variabile locale înseamnă crearea de intrări suplimentare. Acest lucru va transforma patru blocuri de variabile într-un singur bloc cu patru variabile (Fig. 4). Este această conversie echivalentă? Nu. Un bloc cu mai multe variabile locale are un singur domeniu de aplicare, ceea ce împiedică recuperarea valorilor variabilelor sale în interiorul său. De exemplu, este imposibil să atribuiți variabila valoare (Fig. 4) cheii variabilei.

Enumerăm neajunsurile pe care le-am descoperit în plasarea operației în blocul de procesare a evenimentelor:

  • Legare rigidă la un bloc de evenimente de un anumit tip al componentei selectate
  • Este imposibil să apelați o operație din alte blocuri (ceea ce înseamnă că nu poate deveni o operație de bibliotecă)
  • Operația de ștergere la ștergerea unei componente
  • Formarea unor grupuri ciudate de blocuri „plutitoare”.
  • Este greu de înțeles rapid ce face operația

Este foarte ușor să scapi de toate aceste neajunsuri dacă toate operațiunile sunt plasate în proceduri.

Când creați algoritmi pentru simplitate și viteză, doriți să puneți diferite operații într-o singură procedură, ceea ce va duce la o creștere rapidă a numărului de blocuri și la dificultăți în înțelegerea funcționării acesteia. Pentru a elimina acest lucru în programare, o regulă simplă este utilizată pe scară largă:

O singură funcție (procedură) - o singură operație

Această regulă este luată din practica de viață. Imaginați-vă că aprindeți lumina în cameră și, în același timp, televizorul și aerul condiționat se aprind și computerul se stinge. Îți va plăcea? Nu, pentru că va duce la confuzie și la situații neplăcute.
În fig. 4, la începutul blocului, sunt numite patru proceduri - getKey (obțineți o cheie), getNewVal (obțineți o nouă valoare), getKeys (obțineți o listă de chei) și getIndex (obțineți un index). Fiecare dintre aceste proceduri efectuează o singură operație. După ele vine un bloc if, în care se execută o operație a procedurii setVarValue1.
Este posibil să folosiți variabile globale în loc de variabile locale în proceduri? Este posibil, dar nu ar trebui să o faci. Utilizarea variabilelor globale în interiorul unei proceduri, în primul rând, o leagă strict de acestea și, în consecință, de o aplicație dată și, în al doilea rând, cu ajutorul variabilelor globale, blocurile externe din diferite locuri în aplicație pot influența mecanismul intern de procedura, care este foarte nedorită. Ce s-ar putea întâmpla dacă pasagerii autobuzului au acces la mecanismul acestuia?

Variabilele locale sunt un fel de buffer. Dacă numele unei variabile globale se modifică, aceasta nu va perturba funcționarea procedurii, deoarece în interiorul acesteia sunt folosite numele variabilelor locale care nu s-au schimbat. În App Inventor, atunci când schimbați numele unei variabile globale, aceasta se va schimba automat în toate blocurile care o folosesc. Aceasta duce la o concluzie importantă că automatizarea existentă în App Inventor pentru verificarea corectitudinii tipurilor de variabile, redenumirea variabilelor etc., pe de o parte, simplifică dezvoltarea aplicației, eliberând dezvoltatorul de a se gândi la aceste probleme și, pe de altă parte. de mână, contribuie la dezvoltarea abilităților de compilare neglijentă a algoritmilor. În general, această abilitate poate fi dezvoltată prin programare în orice limbaj. Cum sa eviti asta? Folosiți recomandări pentru a crea „cod curat”, despre care s-au scris multe cărți. MIT App Inventor va folosi doar o mică parte din aceste recomandări, dar respectarea acestora va îmbunătăți algoritmii și lizibilitatea lor în orice mod în care sunt creați - pe o bucată de hârtie, pe o tablă albă, la editarea codului sau la lucrul cu blocuri.

Regula de mai sus ar trebui folosită și atunci când se utilizează blocuri de procesare a evenimentelor. În fig. 4, handlerul de evenimente Click efectuează o singură operație - apelează o procedură. Ce se întâmplă dacă trebuie să apelați mai multe proceduri de la un handler de evenimente? Atunci trebuie să înțelegeți dacă acest grup de proceduri efectuează una sau mai multe operații? Dacă există doar unul, atunci totul este bine. De exemplu, atunci când o aplicație este inițializată, sunt apelate multe proceduri, dar toate sunt unite printr-o singură operație - inițializare.

Cu cât o procedură efectuează mai multe operațiuni, cu atât este mai strânsă legătura sa cu un proiect dat și cu atât este mai dificilă adaptarea acestuia pentru a funcționa într-o altă aplicație. În mod ideal, este recomandabil să faceți o procedură de uz general independentă de o anumită aplicație, astfel încât să o puteți pune în biblioteca dvs. pentru a fi reutilizată în alte aplicații.

Puteți utiliza ecranele de aplicații neutilizate ca stocare pentru procedurile bibliotecii în App Inventor. Bibliotecile cu un număr mic de proceduri pot fi plasate împreună pe un singur ecran, iar cele mari - pe altele separate. În acest din urmă caz, mutarea tuturor blocurilor de bibliotecă în rucsac se poate face folosind o singură operație.

Dacă ai acumulat o mulțime de biblioteci, le poți aranja sub forma unui șablon de aplicație, în care primul ecran este lăsat necompletat. Folosim acest șablon atunci când creăm o nouă aplicație, iar după ce este gata, creăm o copie din care sunt șterse toate ecranele bibliotecii.

Pentru a evita redenumirea variabilelor globale și întreruperea funcționării procedurilor bibliotecii atunci când le copiați din rucsac pe ecranul aplicației, care pot avea variabile globale cu aceleași nume, este necesar să compuneți în prealabil numele blocurilor de bibliotecă cu prefixe care să indice către bibliotecă. Dacă biblioteca pentru lucrul cu o listă de perechi se numește libPairs. Apoi puteți numi variabilele, procedurile și componentele din el astfel: libPairs_name, libPairs_setValue, libPairs_btnExecute.

Pentru a lucra mai convenabil cu un număr mare de blocuri și pentru a le muta în spațiul de lucru, pe lângă butoanele de zoom din zona de vizualizare, este de asemenea util să măriți spațiul de lucru al browserului folosind combinația de taste Ctrl- sau Ctrl+.

App Inventor- un mediu de dezvoltare vizuală pentru aplicații Android care necesită cunoștințe minime de programare din partea utilizatorului. Dezvoltat inițial la Google Labs, după închiderea acestui laborator a fost transferat la Massachusetts Institute of Technology. La început martie 2011 anul, Massachusetts Institute of Technology a lansat o versiune beta publică a proiectului, disponibilă pe site-ul web appinventor.mit.edu.

Acest mediu de dezvoltare funcționează direct din browser. Nu este nevoie să descărcați sau să instalați nimic. Rezultatul poate fi vizualizat pe un dispozitiv Android. Aplicațiile gata făcute pot fi plasate pe Play Market.

Din august 2015, App Inventor 2 este compatibil Limba rusă.

În editorul online MIT App Inventor 2, aplicațiile sunt construite pe baza componentelor standard, care sunt elementul principal al dezvoltării aplicațiilor Android.
Blocurile App Inventor. Concepte și principii importante

Blocurile App Inventor sunt instrumente pentru manipularea componentelor și arată ca puzzle-uri.

Blocurile din acest designer de aplicații Android sunt împărțite în două grupuri mari în funcție de ceea ce influențează și la ce se leagă:

  • legate direct de componente
  • legate de aplicația în ansamblu

Sa incepem cu blocuri care aparțin componentelor. Ele pot fi împărțite în trei tipuri, care se disting ușor prin culoare:

1. blocuri care descriu proprietățile componentei. Sunt verzi și arată așa:

acest bloc denotă proprietatea curentă a componentei. Această imagine arată blocul de culoare de fundal pentru componenta text TextBox1. Ea presupune obținerea unei valori existente.

iar acesta setează valoarea necesară componentei (dați TextBox1 o culoare de fundal...). „set” - set. Acest tip de bloc de proprietăți ar putea fi clasificat ca comenzi (handlers), deoarece oferă de fapt o comandă pentru a modifica orice proprietate a componentei, inclusiv valorile câmpului. Cu toate acestea, dezvoltatorii App Inventor au decis în acest fel - până la urmă, acestea sunt și proprietăți.

2. blocuri de evenimente, adică acele blocuri care monitorizează apariția unui eveniment în aplicație, de exemplu, apăsarea unui buton și apoi lansarea unei comenzi de blocare. Sunt vopsite cu bronz și arată astfel:

acest bloc, de exemplu, efectuează o acțiune atunci când se face clic pe un buton (când se face clic pe Buton3, face...)

3. comandă bloc, în App Inventor acest bloc este adesea numit un handler. Acest bloc specifică ce trebuie făcut cu componenta căreia îi aparține blocul:

Acest bloc particular apelează date de la temporizatorul dispozitivului.

Al doilea grup de blocuri relevante pentru întreaga aplicație, este organizat oarecum diferit.

Pentru început, iată lista lor de subgrupuri:

  • Blocuri logice– blocuri logice
  • Blocuri matematice– blocuri de matematică
  • Blocuri de text– blocuri de text
  • Listează blocuri– blocuri pentru gestionarea listelor
  • Blocuri de culoare– blocuri pentru managementul culorilor
  • Blocuri variabile– blocuri pentru controlul variabilelor
  • Blocuri de proceduri– blocuri de proceduri.

Toate acestea, cu excepția blocurilor Proceduri, sunt încorporate în alte blocuri. Adică, nu pot servi ca bloc inițial, spre deosebire de blocurile de evenimente aparținând componentelor - toate acțiunile sunt efectuate atunci când apar unele evenimente cu componente.

Aici merită să vorbim mai mult despre tipurile de „puzzle-uri”. Deci, probabil ați observat că există patru tipuri de puzzle-uri.

Din forma lor este destul de evident că orice lanț dintr-o aplicație mobilă începe cu primul tip. Acesta este un eveniment și este destul de logic că inițiază toate acțiunile ulterioare. Și acest tip nu este diferit de cel adoptat în acest generator de aplicații Android.

Dar următoarele două tipuri de blocuri, conform tipologiei App Inventor, aparțin unor tipuri diferite: proprietăți și, respectiv, comenzi (handlers). Dar în funcție de forma puzzle-ului și de semnificație, ele ar putea fi clasificate ca comenzi, deoarece stabilesc acțiunea. Sa spunem al doilea puzzle-ul prezentat în imagine dă o comandă pentru a atribui o anumită valoare unei componente, A al treilea Puzzle - apelați o componentă cu o anumită valoare. În plus, aceste puzzle-uri sunt „intermediare” nu pot fi folosite pentru a finaliza lanțul.

Si aici Al patrulea specia este valoarea finală, existentă sau calculată, și încheie lanțuri cu aceasta. De exemplu, a patra imagine reprezintă valoarea curentă a componentei Clock1.

Compania IT anunță un concurs pentru dezvoltarea de aplicații mobile pentru sistemul de operare Android, create în limbajul de programare App Inventor.

Datele Concursului
  • Recepția și înregistrarea lucrărilor la concurs: de la 1 ianuarie până la 15 mai 2017.
  • Recenzia lucrărilor de către Juriul competitiv - în perioada 15 mai - 30 mai 2017.
  • Anunțul rezultatelor concursului pe 30 mai pe portalul competiției.