Există deja articole destul de detaliate despre Habré care sunt dedicate lui Bada, de exemplu, acesta și acesta, dar nu există o descriere pas cu pas a creării unei aplicații pentru începători. Pentru cine este interesant - întreb sub kat.
Subiectul scrisului a apărut întâmplător - un prieten este implicat activ în stabilirea limitelor pământului folosind GPS într-o companie geodezică; Specificul lucrării (de unde a venit este o întrebare bună) este că coordonatele geodezice rezultate (să explic ce înseamnă latitudinea și longitudinea) trebuie convertite în dreptunghiulare imediat după ce sunt primite. Compania nu are laptopuri care să reziste la o zi de lucru de 8 ore și nu plănuiește, dar un prieten a cumpărat recent un smartphone de la Samsung promovat activ în Ucraina cu sistemul de operare Bada, apoi a urmat întrebarea - dacă poți descărca jocuri pentru telefonul dvs., există o aplicație care poate rezolva sarcina descrisă pur de inginerie? O astfel de aplicație, desigur, nu a fost găsită și am primit o ofertă bună de a scrie una pentru o anumită taxă.
Instrumente
Pentru a dezvolta aplicații pentru Bada, se folosește Bada SDK 1.2.0, care poate fi descărcat prin înregistrarea pe site-ul pentru dezvoltatori Bada. Nu este nimic complicat în acest proces, dar în etapa de alegere a fișierelor pentru descărcare, eu, sincer, am „tocit” prin descărcarea doar a SDK-ului, iar așa-numitul pachet lingvistic (pachet lingvistic) nu este, în speranța că, deoarece este scris pe site, descărcarea acestuia se va face automat după instalarea SDK-ului. Cu toate acestea, în etapa de instalare, ceva a mers prost, instalarea a continuat fără descărcarea pachetului de limbă, ceea ce a dus ulterior la incapacitatea de a construi (construi), cu atât mai puțin de a rula aplicația.După descărcarea SDK-ului și a pachetului lingvistic, acestea ar trebui să fie puse într-un singur loc, iar atunci când instalează SDK-ul sau îl modifică, instalatorul va ridica pachetul lingvistic și îl va instala singur.
Crearea propriu-zisă a aplicației
Mediul de dezvoltare se bazează pe Eclipse, limbajul de programare C++ folosit. Să începem prin a trece la crearea unei noi aplicații cu comanda evidentă File -> New -> bada Application Project. În fereastra care apare, definiți numele proiectului în câmpul Nume proiect, selectați tipul de aplicație din lista Tip proiect - Aplicație bazată pe formular.
În continuare, mediul vă va cere să determinați parametrii tehnici ai dispozitivului pentru care va fi destinată aplicația (rezoluția ecranului, GPS etc.). Aceste setări sunt definite într-un fișier manifest special, Manifest.xml, care poate fi selectat din fișierele SDK, creat și descărcat de pe site-ul Bada Developers, sau vă puteți crea propriul dvs. Fără mai multă prelungire, am folosit fișierul manifest din folderele Samples care sunt instalate cu SDK-ul, deoarece aplicația mea nu necesita niciun „clopote și fluier”, ci doar rezoluția ecranului a fost importantă.
Apoi, mediul vă va cere să specificați directorul rădăcină al SDK-ului, aceasta nu ar trebui să fie o problemă. După selecție, numele modelului de dispozitiv și API-ul acestuia vor apărea în listă, care va fi folosită în viitor pentru programare.
Următorul pas este să determinați numele formularului implicit care va apărea imediat după pornirea aplicației. Fișierele *.h și *.cpp vor fi generate cu acest nume.
Apoi, trebuie să determinați dacă adăugați sau nu suport pentru scalare automată și cea mai bună rezoluție a ecranului, dacă această caracteristică este adăugată. Înțeleg că acest lucru este mai bine de făcut, deoarece aplicația va putea funcționa pe diferite dispozitive cu rezoluții diferite și nu va trebui să fie refăcută.
Următoarea verigă dintr-un lanț lung de setări este definirea unui ID de aplicație, pentru a autentifica funcțiile aplicației dacă trebuie să citească și să scrie în foldere protejate. Nu aveam nevoie, așa că am omis acest pas.
Aproape terminat - definirea proprietăților evidente ale aplicației Nume, Furnizor și Descriere.
Și acum este aproape sfârșitul - aceasta este definiția configurațiilor necesare pentru dezvoltare: recomand să lăsați totul implicit, iar acum cea mai importantă configurație este Simulator-Debug - aceasta este capacitatea de a depana codul pe un simulator de dispozitiv, Target -Release - configurație pentru compilarea aplicației înainte de a o încărca pe dispozitivul real.
Ultimul pas este rezumatul tuturor setărilor din fereastra Rezumat, pe care îl puteți citi din nou și vă asigurați că totul este selectat corect.
După setările finale, viitoarea aplicație apare în Project Explorer, făcând clic pe care duce la dezvăluirea fișierelor de resurse în fereastra Resurse și apare următoarea fereastră:
După ce faceți clic pe formular (și în general pe orice control) din fila Proprietăți, puteți modifica proprietățile evidente ale aplicației, cum ar fi textul din titlu, culoarea de fundal, prezența și numele tastelor soft.
Am mutat imediat butonul gata făcut, pe care mediul l-a generat cu amabilitate, am coborât și am scris Calculate pe el. Având un editor GUI, este ușor să obțin următoarea interfață, care este potrivită pentru sarcina mea (cred că procesul de transfer al controalelor într-un formular și setarea proprietăților acestora nu provoacă dificultăți); ca etichete pentru câmpurile de intrare, se folosește evidenta Etichetă, ca câmpuri de intrare - EditField; Etichetele sunt, de asemenea, folosite pentru a afișa rezultatul calculelor, deoarece editarea lor nu este furnizată:
Acum codarea în sine.
Aplicația care rulează trece prin mai multe etape (Ajutorul este foarte detaliat, puteți găsi detalii acolo), acum ne interesează în primul rând etapa de inițializare a aplicației, care este responsabilă pentru metoda OnInitializing (void) a clasei de formular, care poate fi găsite în dosar<ВАША_ФОРМА>.cpp în folderul src al proiectului.
În mod implicit, această metodă arată astfel:
Rezultat Form1::OnInitializing(void) ( rezultatul r = E_SUCCESS; // TODO: Adăugați aici codul de inițializare // Obțineți un buton prin ID de resursă __pButtonOk = static_cast
Am facut asa:
protejat: static const int ID_BUTTON_OK = 101; // ID nou de acțiune pentru butonul CLEAR static const int ID_BUTTON_CLEAR=102; // constante geodezice static const int a=6378137; static const float alfa=1/298.257223563; Osp::Ui::Controle::Button *__pButtonOk; // câmp nou: butonul Osp::Ui::Controls::Button *__pButtonClear; // câmpuri noi: editări și etichete Osp::Ui::Controls::EditField *__pB_deg; Osp::Ui::Controle::EditField *__pB_min; Osp::Ui::Controls::EditField *__pB_sec; Osp::Ui::Controle::EditField *__pL_deg; Osp::Ui::Controle::EditField *__pL_min; Osp::Ui::Controls::EditField *__pL_sec; Osp::Ui::Controle::EditField *__pH; Osp::Ui::Controls::Label *__pX; Osp::Ui::Controls::Label *__pY;
Acum, în metoda OnInitializing(void), puteți crea un buton Clear și îi puteți atribui o acțiune de identificare și un ascultător de evenimente. Vom face același lucru cu EditField și Label, fără a le adăuga Id Action și Event Listener, deoarece reacția lor la acțiunile utilizatorului în aplicația noastră simplă nu este furnizată (IDC_BUTTON1, IDC_EDITFIELD1 etc. - valorile proprietății Name pentru buton ).
PButtonOk = static_cast
În această etapă, puteți rula deja aplicația și puteți vedea cum datele sunt introduse în simulator, dar, desigur, nu există niciun beneficiu până când evenimentele de apăsare a butonului nu sunt procesate.
Pentru a rezolva această problemă, se folosește metoda clasei de formular OnActionPerformed(const Osp::Ui::Control& source, int actionId). După cum puteți vedea, al doilea parametru este Action Id-ul menționat deja mai sus. Când aplicația este executată, evenimentele de clic pe buton sunt „ascultate” și ID-ul de acțiune atribuit acestora este transmis la OnActionPerformed (const Osp::Ui::Control& source, int actionId). Dacă aici este prevăzută prelucrarea pentru un astfel de identificator, aceasta este efectuată.
OnActionPerformed are un comutator gol pentru analiza parametrului actionId, este convenabil să îl utilizați. În continuare, îmi voi permite să dau codul acestei metode cu comentarii detaliate:
Void Form1::OnActionPerformed(const Osp::Ui::Control& source, int actionId) ( const int MAX_BUFF_SIZE = 512; switch(actionId) (case ID_BUTTON_OK: // butonul apăsați răspuns Calculate ( // obține o reprezentare șir de grade, minute și secunde de latitudine și... String B_deg_str(__pB_deg->GetText()); String B_min_str(__pB_min->GetText()); String B_sec_str(__pB_sec->GetText()); //...longitudine String L_deg_ (__pL_deg ->GetText()); String L_min_str(__pL_min->GetText()); String L_sec_str(__pL_sec->GetText()); // ... înălțime String H_str(__pH->GetText()); dublu B_de ,B_min ,B_sec; dublu L_deg,L_min,L_sec; dublu H; // conversia reprezentărilor șir de numere în formă reală pentru calcule rezultat r1=Double::Parse(B_deg_str,B_deg); rezultat r2=Double::Parse(B_min_str ,B_min); rezultat r3=Dublu::Parse(B_sec_str,B_sec); rezultat r4=Double::Parse(L_deg_str,L_deg); rezultat r5=Double::Parse(L_min_str,L_min); ); rezultat r7=Dublu: : alin e(H_str,H); // calcule dublu b_in_decimal=B_deg+B_min/60+B_sec/3600; dublu l_in_zecimal=L_deg+L_min/60+L_sec/3600; dublu eSqr=2*alfa-(alfa*alfa); dublu N=a/Math::Sqrt(1-eSqr*(Math::Sin(b_in_zecimal))*(Math::Sin(b_in_zecimal))); dublu X=(N+H)*Math::Cos(b_in_zecimal)*Math::Cos(l_in_zecimal); dublu Y=(N+H)*Math::Cos(b_in_zecimal)*Math::Sin(l_in_zecimal); StringstrX; StringstrY; // conversia valorilor coordonatelor numerice în reprezentarea șirului strX.Format(MAX_BUFF_SIZE,L"%f",X); strY.Format(MAX_BUFF_SIZE,L"%f",Y); // afișarea numerelor primite în Label __pX->SetText(L"X="+strX);__pY->SetText(L"Y="+strY); __pX->Draw();__pY->Draw(); __pX->Show();__pY->Show(); ) pauză; case ID_BUTTON_CLEAR: ( // reacție la apăsarea butonului Clear // creați o casetă de dialog cu butoanele OK și CANCEL și o întrebare - ștergeți toate câmpurile? MessageBox *pMessageBox = new MessageBox(); pMessageBox->Construct(L"MessageBox", L"Ștergeți toate câmpurile?" , MSGBOX_STYLE_OKCANCEL ,9000); int ModalResult; pMessageBox->ShowAndWait(ModalResult); // dacă răspunsul este da, atunci... dacă (ModalResult==MSGBOX_RESULT_OK) ( // ... ștergeți câmpuri de introducere și etichetă __pB_deg->Clear(); __pB_min->Clear(); __pB_sec->Clear(); __pL_deg->Clear(); __pL_min->Clear(); __pL_sec->Clear(); __pL_sec->Clear(); __p (); __pX ->SetText(L"X=");__pY->SetText(L"Y="); ) // șterge MessageBox șterge pMessageBox; ) pauză; implicit: break; ) )
Aspectul simulatorului cu programul care rulează arată astfel:
La fel și cu MessageBox:
Asta, se pare, este tot. Aș dori să menționez că aplicația nu pretinde deloc la lărgimea acoperirii și la corectitudinea tuturor formulărilor, de exemplu, nu există deloc „protecție prost”, deoarece sper pentru sănătatea mintală a prietenului meu și a patru dintre colegilor săi cărora le este destinat acest program.
Mai recent, a fost primită o altă aplicație pentru dezvoltarea Bada - este necesară căutarea și afișarea pe hartă a celor mai apropiate obiecte, precum bancomate sau terminale de reîncărcare a conturilor. Dacă acest subiect este de interes pentru cineva, voi împărtăși cu plăcere experiența mea.
Dacă cineva are o întrebare despre ce, de fapt, să facă în continuare cu programul, atunci acest lucru este tratat în detaliu în articolele de pe site-ul web Bada Developer, nu voi atinge acest lucru, deoarece programarea este încă un subiect mai complicat.
Sursele de aplicație sunt disponibile
În general, cu siguranță nu sunt un susținător al unor astfel de lucruri. Cred că dezvoltatorii ar trebui să fie plătiți pentru munca lor. Cu toate acestea, sunt convins că o persoană adultă, solventă, va cumpăra un joc sau un program dacă îi place. Din păcate, nu totul poate fi încercat fără cumpărare și, prin urmare, din această perspectivă, instalarea de software plătit pentru revizuire pare destul de acceptabilă. În orice caz, există o cale și funcționează. De asemenea, având în vedere că, iar soarta ulterioară a proprietarilor de badafons este în general de neînțeles, în cele din urmă, nu consider că este rușinos să folosesc dezvoltările.
Deci, ca întotdeauna, vă avertizez - calea funcționează. L-am testat singur. Dar, în orice caz, dacă întrerupi performanța dispozitivului tău, acestea sunt doar problemele tale. Faceți totul conform instrucțiunilor și totul va funcționa ca un ceas. Afacere.
Să începem.
Am testat această metodă pe Samsung S8500 Wave și firmware-ul oficial ucrainean. Îl poți descărca de pe .
Nu avem nevoie de multe.
1. Multiloader - luați-l până la . Orice versiune, dar aș lua cea mai recentă.
2. Fișier apps_Compressed_spoof_Wave_I.bin - descărcați-l de pe link (acesta este pentru primul val, pentru Ucraina)
Am pus Angry Birds.
În primul rând, flashăm fișierul apps_Compressed_spoof_Wave_ pentru noi înșine (în funcție de ce val aveți). Acest lucru se face o dată. Pentru a face acest lucru, lansați Multiloader și selectați LSI, Boot Change și Full Download. Captura de ecran se poate face clic:
Adăugăm fișierul nostru. Puteți pur și simplu să-l trageți în fereastra programului. Am tăiat telefonul. Ținem simultan apăsată tasta de volum în jos + blocare + pornire (țeavă roșie). Modul de descărcare se va aprinde. Apoi Căutare Port. Apoi Descărcați. Dacă ți-ai cusut vreodată telefonul, aceasta nu este o noutate pentru tine.
Fișierul este arhivat - bine.
După despachetarea Bada Wave Spoof (program în arhivă). Un astfel de fișier îl găsim în interior: BadaCertificate.cer. Îl copiem pe telefon (nu contează unde, dar este mai bine în folderul Others). Mergem în telefon în folderul în care am copiat și atingem fișierul. Fiți de acord cu avertismentul și instalați certificatul.
Despachetați arhiva cu jocul sau aplicația, în cazul nostru, arhiva AngryBirds.rar și specificați calea către folder și, în special, către fișierul cu numele jocului application.exe (în cazul nostru, AngryBirds.exe ).
Cel mai probabil fișierul va fi în folderul Bin. Bifați caseta așa cum se arată în captură de ecran. Alternativ, apăsați mai întâi butonul 1. Semnați, apoi butonul 2. Redenumiți.
Alternativ, apăsați mai întâi butonul 1. Semnați
Toată lumea este aici. Accesați fila Copiere. Decupăm telefonul în modul Removable Disk și selectăm un card de memorie din lista derulantă. Dacă nu, faceți clic pe butonul cu două săgeți verzi lângă el. Așteptăm să se încarce.
După copierea cu succes. Oprim telefonul și mergem la telefon pe calea Setări - General - Locație de instalare - selectați cardul de memorie. Decupăm telefonul în modul Samsung Kies.
Recent am reusit sa devin proprietarul unui „smartphone” Samsung Wave 525 cu sistemul de operare Bada. În principiu, aveam nevoie de doar două funcții de la telefon - un music player în care poți conecta căști obișnuite cu minijack de 3,5 inchi și acces la Internet prin Wi-Fi. Noul Wave 525 poate face toate acestea cu diferite grade de succes. „Dar”, m-am gândit, „din moment ce are îndrăzneala să-și spună smartphone, trebuie să-l încarci la maxim.” Și a început să se încarce.
Toate aplicațiile „native” de pe un telefon cu sistemul Bada sunt instalate prin magazinul Samsung Apps. Vă puteți conecta la acesta fie prin aplicația cu același nume de pe telefon, fie conectându-vă la un computer folosind programul desktop Samsung Kies. Deoarece nu am achiziționat încă Wi-Fi acasă, am ales a doua opțiune.
La conectarea telefonului la computer, Kies s-a oferit imediat să actualizeze firmware-ul. Aici trebuie menționat că în memoria mea sunt încă vii amintirile actualizării firmware-ului cu un program proprietar pe telefonul meu anterior, Sony Ericsson k800i. Programul de actualizare a fost descărcat de pe site-ul oficial rusesc, procedura de actualizare a firmware-ului a avut succes. După aceea, m-am trezit în mâinile mele cu un telefon minunat în limba engleză, fără semne ale limbii ruse. După aceea, am scris suportului tehnic de mai multe ori - de fiecare dată când robotul m-a trimis înapoi Două scrisori care afirmă că au deschis un bilet pentru problema mea și o vor rezolva în timp. Acel timp fericit nu a venit niciodată.
Dar destule digresiuni. Renunțând la experiența mea tristă, am apăsat în continuare butonul „Actualizați firmware”. Și... nu s-a întâmplat nimic. Telefonul s-a oprit, apoi s-a conectat din nou și a apărut din nou fereastra cu oferta de actualizare a firmware-ului. Tehnologia face minuni.
In magazinul de aplicatii m-am uitat la preturi si m-am linistit putin. Mi-a fost teamă că prețurile din filiala ucraineană a Samsung Apps erau cumva prohibitiv de nebunești. Acest lucru nu este în întregime adevărat - practic, prețurile pentru aplicațiile plătite variază de la 10 la 50 de grivne și există și o mulțime de software gratuit. Deși, după cum sa dovedit mai târziu, cantitatea de aici nu a început să se transforme în calitate.
Imediat lovit de absența aproape completă a aplicațiilor localizate. Mai mult, nu numai în engleza obișnuită și relativ ușor de înțeles, ci și în arabă, chineză (japoneză? coreeană? Dați-vă seama aceste hieroglife...). Am fost surprins mai ales de abundența incredibilă de aplicații cu post-scriptul „Numai în vietnameză” (doar în vietnameză). Și asta în secțiunea ucraineană a magazinului! A fost cineva prea leneș să stabilească regiunile de distribuție?
Datorită unei selecții atât de „atente” a aplicațiilor, întregul magazin seamănă cu o gură de software substandard. Am găsit încă puterea să mă adâncesc în ea și în câteva zile am lopat aproape toate aplicațiile gratuite. După aceea, pe smartphone-ul meu au apărut trei feluri de piane de diferite grade de mizerie, mai multe jucării lente, un program lent, dar drăguț de luare a notelor, un client Pipeline Dropbox, un program cu sunete pentru relaxare și un program simplu numit Vibrator (ghici. ce face). ). Tot. Software extrem de util, fără îndoială. Pentru a citi cărți, a trebuit să instalez aplicația java Foliant (un program excelent, de altfel). Nu exista un media player normal care să înlocuiască playerul audio și video slab al telefonului, chiar și în aplicațiile plătite.
M-a amuzat prezența unui client plătit pentru Vkontakte de la GlobalLogic inc - „ЄKontakt”. Pe capturi de ecran, programul arată destul de decent și chiar frumos. Cel puțin, aceasta este aproape singura aplicație care este similară ca design cu interfața telefonului în sine și pare „nativă” - și acest lucru nu se poate spune nici măcar despre unele dintre aplicațiile care au fost incluse în pachet. Dar nu am cumpărat această aplicație, pentru că nu mi-am dat seama niciodată de ce aș avea nevoie de ea.
Așa sunt impresiile. Oamenii din aceste interneturi spun că Bada este un sistem de operare foarte tânăr, de aceea toată mizeria. Sa vedem, poate vor aparea in timp aplicatii normale, magazinul va fi pus in ordine. Până acum, e rău.
» Whatsapp pentru bada
Dacă sunteți proprietarul unui smartphone Samsung care rulează sistemul de operare Bada, atunci nu veți putea instala Whatsapp cu un clic pe un buton. Pentru a instala, trebuie să descărcați Whatsapp pentru Bada gratuit și apoi să îl instalați.
Watsap for Bud este un fișier de instalare special adaptat pentru acest sistem de operare. Aceasta este o versiune neoficială a messengerului, dar funcționează stabil și oferă posibilitatea de a vă bucura de toate beneficiile WhatsApp. Producătorii de smartphone-uri cu acest OS au rămas surzi la solicitările utilizatorilor de a porta această aplicație pe platforma Bada.
Bada este un sistem de operare pentru modelele din seria Samsung Wave, care este un sistem de operare Android modificat. Deoarece acesta nu este Android, nu veți găsi WhatsApp nici în magazinele de aplicații pentru Bud. Dar datorită programatorilor grijulii, putem descărca fișierul WhatsApp adaptat pentru Bada și putem instala versiunea rusă.
Procesul de instalare
1. Descărcați fișierul WhatsApp cu extensia .apk. Îl puteți descărca pe computer și apoi îl puteți transfera pe telefon sau îl puteți descărca imediat de pe telefon. Fișierul este destul de mare (aproximativ 35 MB), așa că dacă nu aveți internet nelimitat pe telefon, este mai bine să vă conectați la o rețea Wi-fi și apoi să descărcați. De obicei, acest fișier nu este descărcat în interiorul arhivei, ci imediat ca fișier de instalare. Prin urmare, nu trebuie să-l despachetați sau să faceți alți pași suplimentari.
2. Rulați fișierul, așteptați instalarea. Dacă la pornire primiți mesaje despre necesitatea de a modifica setările de securitate, atunci dezactivați-l. Asigurați-vă că îl reporniți după instalare! De asemenea, este posibil să aveți nevoie de permisiuni pentru a accesa internetul, camera foto, microfonul etc. Permitem totul, altfel programul nu se va instala.
3. Ne înregistrăm pe whatsapp folosind un număr de telefon și SMS cu confirmare, și începem să-l folosim!
După înregistrare și autentificare, veți putea prin Whatsapp:
- comunica prin mesaje text, conferințe audio sau video;
- trimite fotografii, videoclipuri, documente, adaugă emoticoane;
- participa la comunicare în grupuri generale;
- vezi cine din agenda ta de contact are deja WhatsApp și invită-i pe cei care nu îl au încă instalat.
Sunt puține modele de telefoane și smartphone-uri care sunt lansate sub sistemul de operare Bada, dar ele există și este probabil ca în viitor Samsung să producă în continuare smartphone-uri cu acest sistem de operare. Acum toate smartphone-urile din seria Wave sunt echipate cu sistemul de operare Bada. Lista completă a modelelor este în tabelul de mai jos.