Contacte

MIT App Inventor - Toată lumea poate crea o aplicație mobilă. App Inventor - Miercuri de Android Aplicație Miercuri Download Educație App Inventor în limba rusă

App Inventor. - Miercuri de dezvoltare vizuală a aplicațiilor Android, care necesită cunoștințe de programare minimă a utilizatorului. Proiectat inițial în Google Labs, după închiderea acestui laborator a fost transferată la Institutul Tehnologic din Massachusetts. La inceput martie 2011. Institutul Massachusetts a lansat o versiune publică Beta a proiectului disponibil pe site-ul Web App.Inventorp.edu.

Funcționează acest mediu de dezvoltare direct din browser. Descărcați și instalați nimic. Rezultatul poate fi vizualizat pe dispozitivul Android. Aplicațiile finalizate pot fi plasate pe piața de redare.

August 2015 App Inventor 2 Suporturi limba rusă.

În editorul online, App Inventor 2 se bazează pe componente standard care sunt elementul principal al dezvoltării aplicațiilor Android.
Blochează inventatorul aplicației. Concepte importante și principii

Blocurile de inventator de aplicații sunt instrumente pentru componentele de operare și arata ca puzzle-uri.

Blocurile din acest designer de aplicații Android sunt împărțite în două grupuri mari pe baza căreia afectează și care sunt legate de:

  • referitoare direct la componente
  • aplicată aplicației ca întreg

Să începem cu S. blocuri care aparțin componentelor. Ele pot fi împărțite în trei tipuri care sunt ușor de distins între:

1. Blocuri care descriu proprietățile componentei. Ele sunt verzi și arată astfel:

această unitate denotă proprietatea curentă a componentelor. În această imagine, structura de culori de fundal este afișată pentru componenta Text Textbox1. Aceasta implică primirea semnificației existente.

Și aceasta stabilește valoarea dorită a componentei (Atribuiți Culoarea de fundal a textului Textbox1 ...). "Set" - set. Acest tip de bloc-proprietăți ar putea fi atribuit comandanților (manipulatoarelor), deoarece oferă cu adevărat comenzii să schimbe orice proprietate componentă, inclusiv câmpurile câmpurilor. Cu toate acestea, dezvoltatorii App Inventor au decis astfel - totuși este și proprietăți.

2. Blocurile de evenimente, adică acele blocuri care urmăresc apariția oricărui eveniment din aplicație, de exemplu, apăsând butonul și apoi rulați comanda bloc. Ele sunt pictate în culoarea bronzului și arată astfel:

această unitate, de exemplu, efectuează o acțiune apăsând butonul (când Buton3 a făcut clic pe ...)

3. Comandă bloc, în aplicația Inventor Această unitate este adesea numită manipulator. Această unitate indică faptul că trebuie să faceți cu componenta la care aparține blocul:

În mod specific, acest bloc determină date din temporizatorul dispozitivului.

Al doilea grup de blocuri, legate de toate, Organizate oarecum diferit.

Pentru a începe, aici sunt subgrupurile lor de listă:

  • Blocuri logice. - blocuri logice
  • Blocuri de matematică. - blocuri matematice
  • Blocuri de text. - Blocuri de text
  • Listează blocurile. - blocuri pentru gestionarea listelor
  • Blocuri de culori. - blocuri pentru gestionarea culorilor
  • Variabile blocuri. - blochează pentru a gestiona variabilele
  • Blocuri de proceduri. - blocuri de procedură.

Toate acestea, cu excepția blocurilor de proceduri, sunt încorporate în alte blocuri. Adică, ele nu pot servi drept bloc original, spre deosebire de evenimentele aparținând componentelor - toate acțiunile sunt făcute la orice eveniment cu componente.

Aici merită să spunem despre tipurile de "puzzle-uri". Deci, probabil că ați observat că există patru puzzle-uri de specii.

Este evident din forma lor că orice lanț din aplicația mobilă începe mai întâi. Acesta este un eveniment și este destul de logic că inițiază toate acțiunile ulterioare. Și acest tip nu diferă de aplicațiile adoptate în acest designer pentru Android.

Și aici sunt următoarele două tipuri de blocuri folosind tipologia aplicației Inventor se referă la diferite tipuri: proprietăți și echipe (manipulatoare), respectiv. Dar sub forma unui puzzle și, în sens, ei ar putea fi atribuite echipelor, deoarece acestea au stabilit acțiunea. Sa spunem al doilea Puzzle puzzle ladicat oferă comenzii să atribuie o anumită valoare componentei, dar al treilea Puzzle - Apelați o componentă cu o anumită valoare. În plus, aceste puzzle-uri sunt "intermediare", ele nu pot fi completate cu un lanț.

Si aici Al patrulea Formularul reprezintă valoarea finală care există sau calculată și sfârșitul lanțurilor. De exemplu, a patra imagine este valoarea curentă a componentei ceasului.

Compania Iticher anunță un concurs de dezvoltare a aplicațiilor mobile pentru OS Android, creat în limba de programare a inventatorului de aplicații.

Termeni de desfășurare a concurenței
  • Recepția și înregistrarea lucrărilor competitive: de la 1 ianuarie până la 15 mai 2017.
  • Luarea în considerare a lucrărilor juriului competitiv - de la 15 la 30 mai 2017.
  • Anunțarea rezultatelor concursului la 30 mai la portalul concursului.

În cadrul operațiunii, vom înțelege secvența de acțiuni, fiecare dintre acestea putând conține un număr diferit de blocuri.

Orice operație poate fi plasată fie în unitatea de procesare a evenimentelor, fie în unitatea de procedură. Localizarea operațiunii în unitatea de procesare a evenimentelor este caracterizată de simplă, dar în viitor acest lucru poate duce la multe probleme, spre deosebire de utilizarea acestuia în procedură, ceea ce va obține un algoritm flexibil. Luați în considerare acest lucru cu privire la exemplul unei operațiuni simple de atribuire a variabilei listei goale goale, formată din două blocuri (figura 1).

Smochin. 1. Opțiuni de operare.

La plasarea unei operațiuni în unitatea de procesare a evenimentului Component (versiunea superioară), este atașată rigid și devine inaccesibilă pentru a apela de la alte blocuri. Dacă această operațiune trebuie să fie apelată dintr-un alt bloc, atunci va trebui să fie copiată. Crearea copiilor operațiunii sunt nedorite, deoarece atunci când își schimbă algoritmul, va trebui să introduceți fiecare dintre ele. Acest lucru sporește probabilitatea unor erori diferite: puteți uita să remediați un fel de copie, faceți o greșeală la copierea blocurilor, introduceți-le, etc. Plasarea operațiunii în unitatea de procedură vă va permite să o numiți de la alte blocuri și să evitați erorile descrise mai sus.

Când lucrați în editorul blocului, uneori este necesar să numiți diferite versiuni ale unei operațiuni sau o operațiune diferită. Pentru a face acest lucru, puteți crea noi componente cu unități de manipulare a evenimentelor noi sau puteți utiliza un bloc btnexecute existent prin plasarea unui apel la această operație. Ca rezultat al înlocuirii, operațiile deconectate se vor transforma în blocuri "plutitoare" (figura 2), care nu aparțin nici unui bloc de grup.

Smochin. 2. Blocuri "plutitoare".

Dacă există multe astfel de blocuri plutitoare pe câmpul de lucru, este posibil să nu fie ușor să se ocupe de ele. Dacă totul este clar cu blocul de jos - acesta este un bloc de a apela o procedură, ceea ce face unitățile de blocuri în partea de sus a imaginii? Este aceasta o operație separată sau o acțiune care intră sau a fost inclusă în altă operațiune? Dar atunci unde este restul acestei operațiuni? Adăugarea unei operații la unitatea de procedură vă va permite să scăpați de blocurile de "plutitoare" de neînțeles.

Pentru a executa blocul, nu este necesar să îl plasați în manipularea evenimentului. Puteți să faceți clic dreapta pe acesta și în meniul contextual care apare, selectați opțiunea Do It.

Un alt dezavantaj al operațiunii în manipulatorul de evenimente este legat de faptul că, atunci când ștergem accidental o componentă a designerului, nu numai toate blocurile care se referă la această componentă, dar și toate blocurile investite în ele sunt șterse. Mai ales enervant va fi în cazul în care operațiunea a constat dintr-un număr mare de blocuri (figura 3). Dacă ștergeți componenta BTNTEST, atunci blocul BTNTEST.CLICK va fi șters cu tot conținutul său.

Smochin. 3. Blocarea nedorită a blocurilor într-un manipulator de evenimente.

Ce operație efectuează blocuri în această imagine? Este greu de răspuns imediat. Și când le plasați într-o procedură separată, totul va deveni imediat ușor de înțeles din numele său setVarValue - stabilește valoarea variabilei (figura 4).

Smochin. 4. Gruparea laturilor în procedură.

Blocurile de procedură și variabilele locale au o configurație disponibilă atunci când sunt făcute pe pictograma angrenajului. Pentru blocurile de proceduri, acesta constă în adăugarea de parametri de intrare și pentru blocurile variabilelor locale la crearea de intrări suplimentare. Acest lucru va permite patru variabile bloc să se transforme într-un bloc cu patru variabile (figura 4). Este un echivalent de conversie? Nu. Un bloc cu mai multe variabile locale are un domeniu de aplicare care nu permite în interiorul acesteia pentru a obține valorile variabilelor sale. De exemplu, variabila de valoare este imposibilă (figura 4) pentru a atribui valoarea variabilei cheie.

Listăm dezavantajele operațiunii în unitatea de procesare a evenimentelor:

  • Hard legat la blocul de eveniment al unui anumit tip de componentă selectată
  • Este imposibil să numiți operațiunea de la alte blocuri (înseamnă că nu poate deveni bibliotecă)
  • Scoaterea operațiunii la scoaterea componentei
  • Formarea grupărilor bloc "plutitoare" de neînțeles
  • Este greu să înțelegi rapid ce funcționează operația

Scapa de toate aceste dezavantaje este foarte simplă dacă toate operațiunile sunt plasate în procedură.

Când creați algoritmi pentru simplitate și viteză, doriți ca operațiunile diferite să fie puse într-o singură procedură, ceea ce va duce la o creștere rapidă a numărului de blocuri și dificultăți cu înțelegerea activității sale. Pentru a exclude acest lucru, o regulă simplă este utilizată pe scară largă în programare:

O funcție (procedură) este o operațiune

Această regulă este luată din practica vieții. Imaginați-vă că porniți lumina din cameră și, în același timp, televizorul este pornit, aer condiționat și oprirea calculatorului. Vă place? Nu, pentru că va duce la confuzie și situații neplăcute.
În fig. 4 La începutul blocului, există o provocare a patru proceduri - Getkey (obțineți cheia), Getnewval (obțineți o nouă valoare), GetKeys (obțineți o listă de chei) și GetIndex. Fiecare dintre aceste proceduri efectuează o operațiune. După ele, se execută blocul, în care se execută o operație de procedură setVarValue1.
Este posibilă utilizarea globală în proceduri în loc de variabile locale? Puteți, dar nu faceți acest lucru. Utilizarea variabilelor globale în cadrul procedurii, în primul rând le le leagă cu asprumente și, în consecință, la această aplicație și, în al doilea rând, cu ajutorul variabilelor globale, blocurile externe din diferite aplicații pot influența mecanismul intern al procedurii, care este destul de nedorit. Ce se poate întâmpla dacă pasagerii autobuzului au acces la mecanismul său?

Variabilele locale sunt un tip de tampon. Dacă numele modificărilor variabile globale, acest lucru nu va rupe activitatea procedurii, deoarece numele variabilelor locale sunt utilizate în interiorul acesteia, care nu s-au schimbat. În inventatorul de aplicații la schimbarea numelui variabilei globale, se va schimba automat în toate blocurile folosind acesta. De aici, o concluzie importantă existentă în automatizarea inventatorului de aplicații pentru a verifica corectitudinea tipurilor variabile, redenumirea variabilelor și altfel, pe de o parte, simplifică dezvoltarea aplicațiilor, eliberând dezvoltatorul să se gândească la aceste probleme și, pe altă mână, promovează abilitatea de dezvoltare a compilației neglijente a algoritmilor. În general, această abilitate se poate dezvolta atunci când se programează în orice limbă. Cum să eviți acest lucru? Utilizați recomandări pentru crearea unui "cod curat", care este scris o mulțime de cărți. Inventatorul de aplicații MIT va putea să utilizeze doar o mică parte din aceste recomandări, dar după ce le va îmbunătăți algoritmii și lizibilitatea lor, cu orice mod de a le crea - pe o foaie de hârtie, la bord, la editarea codului sau lucrul cu blocuri.

Regula de mai sus ar trebui utilizată și în cazul utilizării unităților de procesare a evenimentelor. În fig. 4 click Handler produce doar o singură operațiune - cauzează procedura. Și dacă aveți nevoie să apelați mai multe proceduri de la Handler de evenimente? Apoi trebuie să înțelegeți, acest grup de proceduri efectuează una sau mai multe operații? Dacă unul, atunci totul este în ordine. De exemplu, sub inițializarea cererii, se numesc multe proceduri, dar toate sunt combinate cu o singură operațiune - inițializare.

Cele mai multe operațiuni efectuează procedura, cu atât mai îndeaproape conexiunea acestuia cu acest proiect este și cu atât este mai dificil să-l adapteze la locul de muncă într-o altă aplicație. În mod ideal, procedura generală este de dorit să fie independentă de această cerere, astfel încât să fie posibilă plasarea acestuia în biblioteca sa pentru reutilizare în alte aplicații.

Ca depozit de proceduri de bibliotecă în inventatorul de aplicații, puteți utiliza ecrane de aplicație corespunzătoare. Bibliotecile cu un număr mic de proceduri pot fi plasate împreună pe un singur ecran și pe cele mari pe individ. În acest din urmă caz, mișcarea tuturor blocurilor de bibliotecă în rucsac poate fi efectuată utilizând o singură operație.

Dacă bibliotecile au acumulat multe, atunci le puteți aranja ca un șablon de aplicație în care primul ecran este gol. Folosim acest șablon atunci când creați o nouă aplicație și după disponibilitatea sa, creați o copie de la care sunt șterse toate ecranele bibliotecii.

Pentru a elimina redenumirea variabilelor globale și încălcarea activității procedurilor de bibliotecă atunci când le copiați dintr-un rucsac la un ecran de aplicație care poate avea variabile globale cu aceleași nume, numele blocurilor de biblioteci sunt necesare în avans cu prefixe care indică biblioteca. Dacă biblioteca pentru a lucra cu o listă de cupluri se numește libpapairs. Apoi, puteți variabile, proceduri și componente în ea: libpapairs_name, libparas_setValue, libpieirs_btnexecute.

Pentru o funcționare mai convenabilă, cu un număr mare de blocuri și deplasarea acestora prin câmpul de lucru, în plus față de butoanele de scalare de pe fereastră de vizualizare, este util să se scaldă zona de lucru a browserului utilizând combinația CTRL-sau CTRL + tastatură.

Astăzi, pe piața muncii, vedem un adevărat boom pe specialiști în dezvoltarea aplicațiilor de aplicații pentru dispozitivele mobile. Profesia dezvoltatorului de aplicații mobile devine una dintre cele mai căutate. Dar este sistemul educațional gata să răspundă la această provocare? La urma urmei, pentru a diagnostica capacitatea de a programa și de a pune o bază solidă de la cunoștințe și abilități în timp, trebuie să începeți de la vârsta școlară timpurie.

Până de curând, problema învățării programării elevilor de clasă mijlocie părea intractabilă - în primul rând datorită lipsei unui instrument, care, pe de o parte, ar fi suficient de ușor de învățat și, pe de altă parte, ar permite să creeze într-adevăr în picioare produse. Încercările de a instrui elevii de la Basya sau Pascal, au condus doar la faptul că obiectul informatic a fost doar un cerc foarte îngust de studenți - cei care, datorită trăsăturilor intelectuale, educației familiale sau norocului cu profesorul, au reușit să avanseze în dezvoltare de programare mai departe decât altele. Pentru majoritatea celorlalți elevi, informația a rămas ceva inaccesibil.

Situația a început să se schimbe la începutul anilor 2000, cu apariția și dezvoltarea limbilor de programare vizuală, a căror emblemă este considerată a fi limba de zgârietură. Această limbă a făcut o revoluție reală în programele de predare școlară pentru sistemul de operare desktop. Programarea la zero este la fel de ușoară ca mozaic-puzzle-ul copiilor pliabil. Operatorii și procedurile lingvistice sunt blocuri colorate. Tragând și conectarea acestora, creăm un program. Este pur și simplu imposibil să faceți o eroare în sintaxa acestei limbi - dacă blocurile nu stau lângă, puzzle-ul pur și simplu nu funcționează.

App Inventor.

Dezvoltarea naturală a acestei abordări a fost limba de programare a inventatorului de aplicații, dezvoltată de Institutul de Tehnologie al Profesorului Massachusetts (MIT) Halome Abelson în 2010. Se bazează pe același principiu de a trage cărămizile vizuale și de colectare a programului de la blocuri.

Diferența dintre inventatorul de aplicații de la zero este faptul că inventatorul de aplicații nu este orientat către utilizarea desktopului, dar este destinat să creeze aplicații pentru un dispozitiv mobil - un smartphone sau tabletă cu sistemul de operare Android. El știe cum, de exemplu, "înțelegeți" datele accelerometrului de date ale gadgetului mobil, controlați camera încorporată, vede modul în care telefonul este orientat în spațiu și mult mai mult.

App Inventor este o aplicație complet tulbure. Pentru a începe programarea pe ea, aveți nevoie doar de Internet și de browser. Trecerea la pagina de limbă se efectuează la această legătură. Interfață în engleză și rusă.

Interfața limbajului de programare a inventatorului MIT este alcătuită din două părți principale - designer. și editorul Blokov..

ÎN designer. Construim aplicația noastră de la elemente - ecrane, butoane, celule, imagini, sunete.

ÎN editorul Blokov. Programați comportamentul acestor elemente.

Interfața inventatorului de aplicații este simplă și intuitivă. Dacă doriți să încercați să predați programarea asupra inventatorului de aplicații la școală, vă recomandăm site-ul web enterpiment.ru, care a colectat materiale de instruire pentru profesori.

Concurență pentru elevii de școală

Și elevii care vor avea loc pe programarea de programare a inventatorului de aplicații la școală sau pot lua parte la concurs pentru dezvoltarea propriilor aplicații mobile pe inventatorul aplicației. Câștigătorul competiției va primi un computer de comprimat de la Samsung. Termenul limită pentru depunerea muncii - până la data de 15 mai 2016.

Stație meteo în App Inventor 2 - aplicația stației meteo pentru telefoanele Android create folosind serviciul online.

Anunțul stației meteorologice este descris în articolul în care am făcut o revizuire a stației meteo, a creat Saltch pentru Arduino și dispozitivul stației meteo. Ei bine, astăzi vom înțelege mai detaliat cum să creăm o aplicație Android și să afișăm toate datele obținute de la stația meteo pe telefon.

Pentru a crea o stație meteo aplicată în App Inventor 2, veți avea nevoie de:

1. Imaginea de fundal a dimensiunii de 540x960 pixeli (dimensiunea imaginii de fundal depinde de dimensiunea ecranului dispozitivului dvs.)

2. Pictograma aplicației pentru ecranul principal 128x128 pixeli (în format PNG32)

3. Pictogramele butoanelor din aplicație în două culori, dimensiunea de 80x80 pixeli

Când am pregătit toate imaginile necesare pentru aplicație, puteți începe să lucrați în aplicația MIT Inventor 2. Pentru a începe, vom solicita astfel de componente:

  • ListPhicker1 - Pentru a porni conexiunea Bluetooth, selectați dispozitivele Bluetooth disponibile și modul de afișare a stării conexiunii
  • Label3 - Backup, pentru a afișa informații suplimentare (temporar nu funcționează, nu puteți adăuga)
  • Etichetă1 - Pentru a afișa datele primite de la Arduino
  • Label2 - pentru a afișa inscripția (temperatura în cameră, temperatura din stradă, presiune etc.)
  • OrizontArundare1 - Modul de aliniere a elementelor orizontal, în cazul modurilor de comutare)
  • Buton1 - butonul pentru pornirea modului "Temperatura exterioară"
  • Buton2 - Pornirea temperaturii în modul camerei
  • Button3 - butonul pentru pornirea modului "Presiune în mm.rt.st."
  • Button4 - Modul de incluziune a butonului "Umiditate în%"
  • Buton5 - butonul de deconectare (invizibil)
  • Clock1 - Timer.
  • BluetoothClient1 - Componentă pentru lucrul cu Bluetooth (primirea și trimiterea datelor)

Acum, să mergem să blocăm modul de programare în App Inventor 2 pentru a începe să propuneți funcționalități pentru list

apoi pentru cronometru

pentru a primi date prin Bluetooth

pentru butoanele 1-4.

pentru butonul de închidere

După ce toate etapele de dezvoltare au trecut, testăm aplicația la telefon și verifică performanța.

Puteți mări funcționalitatea încorporată a inventatorului de aplicații utilizând tehnologia web și extensiile. În rețea puteți găsi extensii plătite și gratuite (aproximativ 200 de Puravidaapps.com), dar apar întrebări și cât de greu este să vă creați propria dvs., ce pot da și să-și petreacă timpul pe acest lucru sau să facă mai bine altceva?

Toate componentele și blocurile disponibile în inventorul de aplicații aparțin încorporatului (intern) și extinderii la exterior.

Caracteristicile încorporate oferă funcționalități interesante pentru utilizatorii novici, satisfăcătoare pentru experimentați și insuficienți pentru programatori. În același timp, majoritatea utilizatorilor vor prefera să învețe extensiile gata făcute și să nu le dezvolte. Din aceasta rezultă o concluzie simplă că dezvoltarea extensiilor poate fi interesantă, utilizatori și entuziaști cu experiență în principal. Începătorii vor aranja pe deplin capabilități încorporate și extensiile existente, iar programatorii se angajează în extensii nu sunt interesați de motivul pentru necesitatea de a efectua lucrări duale. De ce pierderea timpului la crearea și depanarea expansiunii funcționalității limitate și apoi o utilizare pentru a crea o aplicație de funcționalitate limitată, dacă puteți scrie imediat codul pe Java, utilizând toate caracteristicile disponibile ale Android Studio IDE și Android API?

Crearea extensiilor pentru AI este ușoară dacă există o experiență de programare și înțelegerea fundamentelor OOP, dar în motivele de mai sus, unitățile sunt angajate în mod serios. Crearea extensiilor funcționale este impracticală, dar scrierea unor adăugiri simple pentru a extinde funcționalitatea încorporată sau pentru a crea unul nou poate părea interesant și util în ceea ce privește practica. Dar aici trebuie să decideți asupra abordării. Puteți să urmați conceptul de programare AI - Visual, fie să extindeți elementele de programare a textului.

Dacă spui rulos, atunci inventatorul de aplicații este similar cu aisberg, de topul care este vizibil pentru utilizatori sub formă de funcționalitate încorporată, iar în apă este, de asemenea, indisponibilă mult mai mult. Acest lucru se face în mod specific în conformitate cu scopul acestui IDE, care necesită utilizatori de cunoștințe minime de programare. Modelul de lucru în inventatorul de aplicații nu este inițial conceput pentru o mai mare funcționalitate. Adăugarea de proprietăți noi va determina o creștere a numărului de blocuri în progresia geometrică. De exemplu, adăugarea proprietății de transparență va duce la apariția a două blocuri pentru fiecare widget (pentru a instala și a returna valoarea). Dacă astfel de widget-uri 5, numărul blocurilor va crește cu 10. Proprietăți adăugate, 100 de blocuri primite la ieșire. În plus, vor apărea noi proprietăți în designer. În aceste condiții, abordarea "Simple IDE + Expansion" arată rezonabil, dar nu pentru cei care preferă funcționalitatea bună "a casetei" fără a fi nevoie să căutați și să instalați adăugiri.

Proprietățile individuale de configurare a obiectelor și sarcinilor blocurilor grele de blocuri la faza de dezvoltare a aplicațiilor, pe de o parte, simplifică dezvoltarea și evită un număr mare de erori, dar duce la aplicații statice. Dacă un alt bloc este atașat la un bloc, atunci acesta este pentru totdeauna. Schimbați proprietatea sau selectați un alt obiect în etapa de execuție, este posibil numai dacă această caracteristică a fost inițial pusă la faza de dezvoltare. Pentru a face acest lucru, utilizați acces indirect la obiecte. De exemplu, puteți crea o listă de perechi "Nume obiect - obiect" pentru toate obiectele, apoi utilizați-l în funcții pentru a accesa diferite obiecte. În acest caz, unitatea de primire nu va fi asociată cu un obiect specific, dar cu o listă de la care trebuie să obțineți numele-cheie.

Dacă se adaugă complexitatea de mai sus cu implementarea operațiunilor de grup, lipsa widget-urilor, metodele și alte nuanțe ale funcționalității încorporate este clară, motivul apariției Appicuilderului, Thunkable, Machiad și alții, în care creșterea în Funcționalitatea este implementată din cauza numărului de componente vor fi înțelese. Mai multe componente - mai multe blocuri. Dar, cu ajutorul expansiunii, este posibilă creșterea funcționalității într-un mod calitativ, de exemplu, pentru a utiliza un bloc pentru a accesa zeci de duzini de proprietăți ale obiectelor. Acest lucru este deja interesant, deoarece completează programarea vizuală a elementelor textuale textuale pentru a compensa o serie de deficiențe ale funcționalității AI încorporate.

Extensiile vor putea crea extensii care sunt slab familiarizate cu programarea? Da, simplu va fi capabil să utilizeze abordarea "Copiere și schimbare", dar este încă nevoie de anumite preparate. Fără aceasta, va fi incomprehensibil de ce extensia nu este compilată și ceea ce este scris pe ecran. De asemenea, trebuie spus că o parte din expansiunea care lucrează cu obiecte Android este preferată să creeze și să depaneze în studioul Android.

Dezvoltarea extensiilor se va potrivi pe cei care, în principiu, se potrivește cu inventatorul de aplicații, dar aș dori să completez ceva, să îmbunătățim și să simplificăm și, în același timp, practicând Java. Dacă acesta este cazul dvs., vom începe cu implementarea mediului de dezvoltare.

Vkontakte are un grup Extensii pentru inventatorul aplicației În cazul în care formularul video și textul oferă un ghid pas cu pas pentru a crea și configura mediul de lucru, precum și un exemplu simplu care returnează testul cuvântului. Duplicarea acestui material nu are sens, dar exemplul exemplului va lua în considerare ca o introducere rapidă a subiectului.

pachetul Vlad; Import com.google.appinventor.components.runtime. *; Import com.google.appinventor.components.annotations.DeignerComponent; Import com.google.appinventor.components.annotatii.Deignerproperty; import com.google.appinventor.components.annotatii.propertycategory; Import com.google.appinventor.components.annotatii.simpleevent; Import com.google.appinventor.components.annotatii.Simplefunction; Import com.google.appinventor.components.annotatii.simplice; Import com.google.appinventor.components.annotatii.simppleproperty; Import com.google.appinventor.components.common.componentcategory; Import com.google.appinventor.components.common.propertytypeconstants; Import com.google.appinventor.components.common.yaversion; Import com.google.appinventor.components.runtime.util.sdklevel; @DesignerComponent (versiune \u003d yavesion.otifen_component_version, Categorie \u003d ComponentCategory.extension, descriere \u003d "Aceasta este o extensie de testare", nonvisibil \u003d adevărat, iconname \u003d "imagini / notificer.png") @SimpleObject (extern \u003d true) Testextensiune de clasă finală publică Extinde AndroidnvisibleComponent Implements ComponentContainer (Super (Super (container. $ ());

Codul de prelungire include o clasă Java și un cod de adnotare, începând cu simbolul @. Adnotările sunt folosite pentru a indica faptul că blocul de cod sub ele trebuie să fie procesat de un compilator simplu. Un compilator simplu scanează adnotări și integrează o extensie asupra aplicației Wednesday App Inventor - creează o funcție bloc (funcție sau proprietăți), câmpul de editare din designer și efectuează o altă lucrare.

@DesignerComponent indică parametrii generali ai componentei și ceea ce se referă la categoria de extensii și nu este univocal (în prezent puteți crea numai componente extensive nevalide)

@ SimpleoBject indică o componentă, iar câmpul extern \u003d adevărat este că componenta este externă

@Simplefuncțional indică caracteristica compilatorului pentru care aveți nevoie pentru a crea un bloc. Dacă funcția returnează o valoare, eșapamentul va apărea în stânga sa. Dacă funcția are parametri, săpăturile corespunzătoare vor fi pe partea dreaptă.

Codurile sursă ale clasei pot fi vizualizate în directorii corespunzători numelor pachetului:

cOM / Google / Appinventor / Componente / Clase de construcție.
COM / Google / Appinventor / Componente / Adnotări - Annotații clase
COM / Google / Appinventor / Componente / General - Clase de uz general
COM / Google / Appinventor / Componente / Runtime / Util - Clase Utilitare

În prezent, utilizând extensia, puteți crea doar o componentă invizibilă. Dacă aveți nevoie să creați o componentă vizuală, trageți la câmpul de lucru al designerului, precum și la widget-urile proiectate, atunci va lua propria copie locală a inventatorului de aplicații.

Încercați să schimbați inscripția, să compilați, să instalați și să executați blocul. Dacă se întâmplă totul, mediul de lucru este configurat și puteți continua să creați lucruri mai practice și interesante.



Ți-a plăcut articolul? Împărtășește-l