Întrebări privind dezvoltarea platformei

Acest articol va acoperi câteva dintre conceptele și deciziile implicate în proiectarea unei aplicații mobile pentru mai multe platforme. Considerațiile discutate vor viza în primul rând o aplicație cross-platform care vizează Android și iOS și este scrisă din perspectiva unui dezvoltator web care ia primii pași în lumea telefoniei mobile. Vom analiza unele dintre diferențele dintre platforme și designul interfeței cu utilizatorul și vom examina, de asemenea, avantajele și dezavantajele dezvoltării cross-platform în general, precum și detaliile specifice ale multor dintre cele mai populare platforme.

O multime de gandire

Există multe lucruri de luat în considerare la proiectarea unei aplicații mobile. Înainte de a putea desena o rețea wireframe sau de a scrie o singură linie de cod, trebuie să vă gândiți la ce va face aplicația dvs., cine este pentru ea și unde va funcționa. Poate că una dintre cele mai importante decizii este platforma pe care aplicația dvs. o va viza. Există o mulțime de alegere: iOS, Android, MeeGo, WebOS, BlackBerry OS, Symbian, Windows Phone 7, Maemo și multe altele pe drum!

Desigur, majoritatea dintre noi sunt interesați doar de cei doi mari concurenți: iOS și Android. Dacă doriți ca aplicația sau serviciul dvs. să ajungă la cea mai mare audiență posibilă, dezvoltarea pentru cel puțin aceste două are sens.

Întrebări inter-platformă

Odată ce v-ați decis să proiectați cea mai recentă aplicație pentru mai multe platforme, veți găsi chiar mai multe decizii care trebuie făcute înainte de a vă putea scrie prima linie de cod. Deciziile precum:

Mențineți două aplicații diferite și complet independente sau proiectați o aplicație hibridă cu o singură bază de cod?

Lucrul pe aceeași aplicație sau serviciu pentru mai multe platforme nu ar trebui să însemne reinventarea aplicației de la zero în fiecare. Reutilizarea componentelor și a părților componente ale designului dvs., atunci când este posibil, va reduce consumul de lucru și vă va ajuta să vă recunoașteți marca.

Cât de mult din aplicația dvs. trebuie să vă consolidați?

Aceasta este mai dificilă și depinde foarte mult de cerințele dvs. Când vine vorba de designul UI și elementele grafice, există o mulțime de reutilizare, cu doar câteva modificări minore, pentru a vă face ideea să se potrivească celor două platforme cele mai populare.

Platformele cu platformă transversală fac mult mai ușor reciclarea eforturilor dvs. Dar există argumente pro și contra pentru a dezvolta cu un cadru hibrid, spre deosebire de utilizarea platformei SDK native. Există, de asemenea, cât mai multe cadre inter-platforme ca și platformele existente în prezent. Mai târziu, în acest articol vom examina câteva dintre cele mai proeminente cadre disponibile și, la sfârșitul acestui articol, vor fi discutate avantajele și dezavantajele dezvoltării alegerii unui cadru inter-platformă.

Ce este interfața cu utilizatorul și personalizarea?

Acesta este unul dintre cele mai mari puncte în dezvoltarea mobilă. Puteți să aveți cea mai bună idee și un cod de mare putere, dar dacă nu este atractiv și ușor de navigat, utilizatorii vor căuta în altă parte. Utilizarea unui SDK cross-platform poate avea un impact dramatic asupra designului dvs. de interfață, permițându-vă să reutilizați porțiuni mari din acesta, dar, de asemenea, posibil, limitarea unor opțiuni.

În cazul în care fiecare platformă are o estetică diferită?

Ei bine, răspunsul nu este un simplu "da" sau "nu". Vom discuta acest lucru în detaliu în secțiunea următoare.

UI Design

Jocuri și aplicații de divertisment

Un UI complet personalizat pentru fiecare platformă de implementare este un model foarte comun în proiectarea jocurilor și acest lucru funcționează destul de bine.

Plante vs Zombie pe Android

Plante vs Zombie pe iOS

De ce? O parte a jocului este învățarea modului în care funcționează controalele și interfața pentru joc, inclusiv modul de navigare a interfeței UI. Un comportament ciudat, distractiv, cu un aspect personalizat și personalizat în UI, este practic esențial pentru a crea o experiență bună în joc.

Aplicații utilitare

Timpul este unul dintre cele mai mari influențe de design pe care le va avea UI-ul dvs. dacă proiectați pentru o aplicație funcțională. Utilizatorii doresc să meargă de pe prima pagină la o misiune realizată în cât mai puține robinete posibil. Având o interfață cu familiar, pe care utilizatorii o vor recunoaște și-și va aminti de la utilizarea în alte aplicații de pe platformă, va face aplicația dvs. mai prietenoasă și mai raționalizată pentru utilizatorii pentru prima dată. Dar asta nu înseamnă neapărat că ușa este complet închisă la personalizare.

Indiferent dacă ați ales să mergeți cu API-ul nativ sau cu un API cross-platform, există multe lucruri pe care le puteți face cu designul interfeței UI pentru a-l face în mod deosebit, fără a distruge încrederea utilizatorului sau a le împinge prea departe din zona lor de confort.

Și adevărul este că, dacă alegeți, proiectarea și dezvoltarea cu cadre pe mai multe platforme poate însemna că aveți puține opțiuni decât să creați un interfață utilizator particularizat. În funcție de cadrul pe care l-ați selectat, este posibil sau nu să aveți acces la elementele UI native. Dar chiar dacă sunteți lăsat fără controale native sau dacă doar împingeți limitele API nativ, puteți continua să urmați modele de design care vor face ca utilizatorii să se simtă ca acasă în aplicația dvs..

E vorba de echilibru. Uitați-vă la unele dintre cele mai mari nume și la ceea ce fac cu aplicațiile lor. Luați Facebook Aplicația de exemplu: acesta afișează un echilibru bun între respectarea considerațiilor privind platforma UX și recunoașterea mărcii.

Aplicația Facebook pe Android

Aplicația Facebook pe iOS

Imediat este recunoscut ca o aplicație Facebook, indiferent de platforma pe care sunteți pe. Dar, de asemenea, le încorporează pe acestea familiar elemente și elemente modele că utilizatorii sunt obișnuiți, ceea ce face la fel de ușor pentru un proprietar iPhone să sară și să meargă așa cum este pentru un proprietar Galaxy.

Aplicația Tweetdeck este un exemplu și mai bun.

Aplicația TweetDeck pe Android

Aplicația TweetDeck pe iOS

În mod ironic, aplicația oficială Twitter este, în opinia mea, un exemplu destul de bun al designului cross-platform.

Aplicația Twitter pe Android

Aplicația Twitter pe iOS

Trucul aici este tot în barele de instrumente și comenzile de navigare. Acele bare din partea de sus și de jos a ecranului, bara de acțiune, bara de navigare și modele similare de design ar trebui să fie păstrate în conformitate cu standardul platformei. Puteți modifica puțin culoarea și stilul, dar funcționalitatea și aspectul general ar trebui să fie ușor de recunoscut. Cu toate acestea, conținutul dvs. poate să aibă un aspect mult mai unic, astfel încât să aveți un design destul de coerent în diferite platforme. Cât de departe o poți lua? Ei bine, aruncați o privire pe site-uri precum TappGala și vedeți la ce se îndepărtează ceilalți.

Care este diferența?

Atunci când proiectați, fiți conștienți de diferențele subtile și nu atât de subtile de pe platforme. Una dintre cele mai mari este interfața fizică, butoanele hardware actuale de pe dispozitiv. IPhone are doar un buton bazat pe butoanele soft din interfața de utilizare pentru orice altceva. Dispozitivele Android, pe de altă parte, au trei butoane standard. Meniul, butonul din spate și butonul de pornire. Utilizatorii de Android vor fi confuzi dacă atingerea acestora nu produce un rezultat în aplicația dvs. încrucișată. De asemenea, Android folosește un meniu contextual, accesat din butonul de meniu, care vă oferă un alt loc pentru controale avansate. Va trebui să faceți locații în designul iOS pentru aceste butoane și meniuri lipsă cu opțiuni ușoare.

Cadrele inter-platforme

Dacă proiectați și dezvoltați pentru mai multe platforme de dispozitive, puteți să reciclați mai mult decât elementele de design. În funcție de cerințele dvs., există o serie de cadre inter-platforme care vă pot ajuta să vă consolidați baza de cod.

PhoneGap

  • Site-ul: http://www.phonegap.com/
  • Limba (i): Javascript, HTML, CSS
  • platforme: iOS, Android, BlackBerry OS, webOS, Windows Phone 7, Symbian, Bada
  • Licență: Open-Source (licență MIT)
  • A sustine: Pachete de suport disponibile
  • Link-uri rapide: Descărcați PhoneGap, instrucțiuni de instalare, extindeți instrucțiunile PhoneGap, pluginuri

Dacă sunteți un dezvoltator web frontend, veți simți ca acasă cu PhoneGap. Utilizând cunoștințele existente despre HTML, CSS și JavaScript, puteți dezvolta rapid aplicații. PhoneGap este, în esență, WebKit cu un API personalizat JavaScript care împachetează API-ul nativ. Este, de asemenea, o opțiune excelentă pentru portarea aplicațiilor dvs. web existente și promovarea acestora pentru aplicații mobile cu drepturi depline. Aveți posibilitatea să utilizați oricare dintre instrumentele dvs. Web preferate de pe partea clientului, inclusiv cadre JavaScript cum ar fi jQuery Mobile sau SenchaTouch.

Din nefericire, deoarece aplicația dvs. nu rulează dintr-o instanță a browserului WebKit, performanța nu va fi la fel de proaspătă ca aplicațiile native sau chiar ceea ce este furnizat de alte cadre disponibile. De asemenea, nu veți avea acces la controalele UI native (deși puteți crea propria temă pentru a fi similară cu CSS). PhoneGap oferă un serviciu de găzduire găzduit excelent, care vă permite să dezvoltați aplicații la nivel local, apoi încărcați și construiți-le cu serviciul online. Acest lucru este minunat dacă nu aveți un Mac pentru dezvoltarea i testare iOS nativă. Înainte de a decide să utilizați PhoneGap, asigurați-vă că verificați dacă suportă toate funcțiile de care aveți nevoie pentru platformele țintă. Din fericire, proiectul PhoneGap este open-source și complet extensibil, astfel încât să puteți adăuga întotdeauna caracteristici lipsă pe cont propriu dacă este necesar să faceți acest lucru.

Expoziție telefonică:

Aplicația schiță armonioasă
Squeezebox
orbium

Pentru a vedea mai multe exemple de aplicații construite cu PhoneGap, verificați site-ul demo oficial.

RhoMobile

  • Site-ul: http://rhomobile.com/
  • Limba (i): Ruby, HTML, CSS, JavaScript
  • platforme: iOS, Android, BlackBerry OS, Windows Phone 7
  • Licență: Open-Source (licență MIT)
  • A sustine: Este disponibilă o licență de suport pentru întreprinderi
  • Link-uri rapide: RhoStudio ușor de instalat, Ruby Gem instala, extinderea Rhodos.

Dezvoltatorii Rails va place acest lucru! Cu RhoMobile vă puteți dezvolta aplicațiile în Ruby cu o abordare puternică MVC! Vizionările sunt proiectate cu cod HTML, CSS și Javascript, astfel încât să puteți aduce toate abilitățile dvs. de pe web dev cu dvs. Din nou, acest cadru nu are suport standard pentru controalele native, dar există extensii disponibile care vă vor permite să ajungeți la ele.

Rhodos are, de asemenea, un serviciu de găzduire găzduit excelent, RhoHub, precum și câteva caracteristici interesante pentru întreprinderi și industriale, cum ar fi suportul Rhosync și NFC. Există un accent deosebit pe RhoMobile ca o soluție pentru aplicațiile enterprise. Cadrul este, de asemenea, extensibil, astfel încât să puteți adăuga propriile dvs. biblioteci native și pietre Ruby. Performanța este destul de bună deoarece aplicația dvs. va fi precomprimată în codul octet.

Prezentarea RhoMobile:

Cărucior mobil
2Know
OECU Mobile

Pentru a vedea mai multe exemple de aplicații construite cu RhoMobile, verificați site-ul demo oficial.

Titanium Mobile pentru Appcelerator

  • Site-ul: http://www.appcelerator.com/
  • Limba (i): JavaScript, JSS
  • platforme: iOS, Android
  • Licență: Open-Source (Apache v2 Community Edition)
  • Opțiuni plătite: Indie (49 $ / lună), Pro (199 USD / lună / dezvoltator), Enterprise
  • Link-uri rapide: Cumpărați, Descărcați, Instrucțiuni de instalare, extinderea Titanium, modul de piață

Titanium Mobile este un alt cadru care se va potrivi dezvoltatorilor web care se mută în spațiul mobil. Titanium a început inițial o abordare similară cu PhoneGap, oferind o vizualizare pe web care a înfășurat API-urile native. Dar, deoarece v1.0, Titanium a fost un compilator încrucișat bazat în întregime pe JavaScript, cu acces la elementele UI native ale dispozitivului și o creștere imensă a performanței.

Versiunea 1.5 a introdus, de asemenea, JSS, Stylsheets Javascript, modelate pe CSS, oferind un sistem flexibil de aspect care poate fi folosit pentru a adapta vizualizările dvs. pentru diferite dispozitive. Spațiile de nume separate sunt, de asemenea, disponibile pentru suport specific platformei. Puteți utiliza orice IDE care vă place să vă dezvoltați codul, iar Titanium Developer este folosit pentru a pregăti și a împacheta aplicația (deși depanarea poate fi o durere).

Showcase:

Titanium App Reel
GetGlue
Wunderlist

Pentru a vedea mai multe exemple de aplicații create cu Titanium Mobile, verificați site-ul demo oficial.

Ansca's Corona SDK

  • Site-ul: http://anscamobile.com/corona/
  • Limba (i): Lua
  • platforme: iOS, Android
  • Licență: Proces, 199 dolari / an platformă unică, 349 dolari / an multi-platformă
  • Link-uri rapide: Cumpărați / Descărcați, Instrucțiuni de instalare pentru Mac OSX, pentru Windows, instrumente de la terți

Ansca a fost fondată de fostii ingineri Flash și Adobe, iar experiența lor arată în implementarea SDK Corona. Corona are un API bine rotunjit, cu un accent deosebit pe dezvoltarea rapidă a jocurilor de înaltă performanță 2D. API include o mulțime de opțiuni pentru dezvoltarea rapidă a jocului, cum ar fi fizica Box2D, suport OpenGL + OpenAL, funcții de animație și gestionarea spritelor și scenelor. Corona include chiar și câteva instrumente de migrare ușoară pentru aplicațiile Flash și dezvoltatorii ActionScript

Oricine are o istorie a modului de joc sau a dezvoltării Flash se va simți foarte confortabil cu limbajul de scriere Lua și setul de instrumente Corona. Ansca oferă, de asemenea, un mediu online cu un loc pentru a vă promova aplicația, a distribui resursele codului și pentru a descărca add-on-uri de la terțe părți. Nu este vorba doar despre jocuri, Corona oferă, de asemenea, o bibliotecă de widget-uri UI și unele elemente native pentru dezvoltatorii util app. Toate acestea sunt foarte atractive, dar vin cu un pret: $ 199 / an pentru dezvoltatorii care se concentreaza pe o singura platforma (fie iOS sau Android), si 349 dolari / an pentru suportul iOS si Android.

Showcase:

ChocoRun
Magic Defenders
Bătăi de maimuță

Pentru a vedea mai multe exemple de aplicații construite cu SDK Corona, verificați site-ul demo oficial.

Unity3D

  • Site-ul: http://unity3d.com/
  • Limba (i): IDE cu Javascript / C # / Boo Scripting pe Mono
  • platforme: Web, iOS, Android, standalone, Wii, PS3, Xbox360
  • Licență: Gratuit și o versiune Pro începând de la 1.500 USD. Verificați compararea licenței și detaliile prețului.

Unitatea este în esență un motor de joc scriptabil, cu propriul său IDE puternic. Conceput pentru dezvoltarea jocului de înaltă performanță pe o multitudine de platforme, inclusiv console și pe web, acesta este un vis al dezvoltatorului jocului. Este, totuși, destinat exclusiv dezvoltării jocurilor 3D, astfel încât dezvoltatorii de aplicații util să se uite în altă parte. În timp ce oferă o versiune gratuită a cadrului, pentru a vă bucura cu adevărat de beneficiile Unity, va trebui să investiți o sumă echitabilă de numerar, cu o licență pro pentru $ 1.500 USD plus taxe suplimentare pentru addons.

Showcase:

Unitatea Primăvară 2010 Evidențiere Reel
Shadowgun
Max și marcatorul magic
/>

Pentru a vedea mai multe exemple de aplicații construite împreună cu Unity3D, verificați site-ul demo oficial.

Cross-Platform Pro și Contra

Ceea ce urmează este o listă a argumentelor pro și contra asociate cu utilizarea unui SDK terță parte pentru a dezvolta aplicații inter-platforme.

Contra

  • Blocarea SDK-ului:

    Odată ce vă angajați într-un cadru, proiectele dvs. devin dependente de un terț. Veți dori să alegeți un cadru stabil care să aibă un dezvoltator dedicat (de preferință dezvoltatori) și o comunitate mare. Cadrele de tip open source oferă o anumită siguranță aici. Deoarece aveți acces la sursă, în cazul în care dezvoltatorul abandonează SDK-ul în viitor, dvs. sau alte persoane le-ați putea continua dezvoltarea.

  • API "Proaspăt":

    Este nevoie de timp pentru ca modificările API ale platformei să treacă prin diferitele SDK-uri ale terțelor părți. Este posibil să trebuiască să așteptați o clipă pentru ca cele mai noi și cele mai bune caracteristici să devină disponibile, dacă devin disponibile deloc. Din nou, vă bazați pe angajamentul dezvoltatorului SDK pentru proiect.

  • Control limitat:

    Cross-platform SDK-urile reprezintă o abstractizare a diferitelor platforme într-o interfață uniformă care ar trebui să facă teoretic mai ușor dezvoltarea. În același timp, această abstractizare vă estompează accesul la API-ul de bază, iar setul de funcții poate fi mai limitat ca rezultat. Cu API-ul oficial, sunteți limitat doar de deciziile hardware și ocazionale de proiectare făcute de Google sau de Apple. Un punct conex: sarcini grele, cum ar fi redarea 3D și procesarea video / audio, pot fi limitate în mod special în abordarea pe care o puteți lua, dacă este posibilă deloc.

Pro:

  • Efort consolidat:

    Cel mai evident beneficiu al alegerii unui SDK cross-platform este reducerea efortului dvs. global pentru un anumit proiect. Prin direcționarea unui singur API, veți economisi mult în dezvoltarea și întreținerea bazei de cod.

  • Plugin-uri:

    Acest lucru se întoarce la contul de prospețime API și control limitat. Multe cadre includ o extensie sau o arhitectură de plugin care vă permite să construiți o bibliotecă nativă și să o integrați în SDK. Acest lucru vă oferă cu adevărat cele mai bune din ambele lumi, puteți dezvolta funcții lipsă sau avansate cu instrumentele native și apoi utilizați SDK-ul multi-platform pentru activități comune.

  • Limbi cunoscute:

    Selectarea unui SDK cross-platform care se potrivește cu setul actual de calificări reduce curba de învățare. În echipe mai mari, care au un instrument pentru acest post, acest lucru poate însemna și mai puțin timp de proiectare, timpul de instruire și cei mai puțini dezvoltatori necesari pentru implementarea proiectului.

  • Timp de dezvoltare redus:

    Majoritatea cadrelor inter-platforme nu numai că oferă un singur instrument pentru multe locuri de muncă, ci și simplifică dezvoltarea cu limbi dinamice și biblioteci complexe pentru sarcini comune, repetitive.

  • Codul și împărțirea activelor:

    Pentru a face viața mai ușoară, mai multe cadre importante au registre oficiale pentru partajarea de coduri și active sau achiziționarea acestora de la alți dezvoltatori.

Învelire

Ar trebui să luați în considerare doar un cadru cross-platform dacă se potrivește atât cerințelor dvs., cât și setului de competențe. Efectuați o cercetare atentă și asigurați-vă că instrumentul de dezvoltare de alegere acceptă toate funcționalitățile pe care doriți să le includeți în aplicație. Nu ar exista nimic mai rău decât obținerea pe jumătate a dezvoltării înainte de a vă da seama că o cerință funcțională cheie nu este susținută de SDK-ul pe care îl utilizați. Rețineți că multe dintre cadrele acceptă extensii, care vă permit să adăugați module native pentru a completa golurile rămase de dezvoltatorii SDK de bază. În cele din urmă, un cadru pe mai multe platforme ar trebui să reducă volumul de muncă, fără a face mai multe probleme în programul dvs. deja ocupat!

Cod