iOS 5 a fost lansat oficial, iar dezvoltatorii iOS sunt nerăbdători să înceapă să utilizeze numeroasele caracteristici noi disponibile în iOS 5 SDK. În acest articol, guruii din industrie, Brandon Trebitowski și Collin Ruffenach, reflectă asupra oportunităților, eficienței și caracteristicilor cele mai interesante ale ultimului SDK. Această postare trebuie citită pentru toți dezvoltatorii SDK-ului iOS!
Odată cu lansarea iOS 5 SDK, platforma de dezvoltare iOS a atins un nou nivel de maturitate. Este evident cu acest comunicat SDK că Apple ascultă cu adevărat nevoile și cererile comunității de dezvoltare. Nu numai că Apple a recunoscut obiectivele comune și punctele de durere exprimate de dezvoltatorii iOS, dar și ei au căutat să ofere instrumente la nivelul SDK care să rezolve multe dintre problemele comune cu care ne confruntăm și să atenueze complet unele dintre cele mai frustrant capcane.
Cu ultimul SDK, un lucru este sigur: nu a fost niciodată mai interesant să fii dezvoltator de iOS! Acest articol vă va oferi o prezentare generală a accesoriilor pe care le găsim cele mai interesante.
Stocarea iCloud este o nouă caracteristică imensă în iOS 5. Acesta permite dezvoltatorilor să sincronizeze automat datele aplicațiilor de pe platforme. Există două forme pe care le poate lua acest lucru: valoare cheie și depozit de documente.
În timp ce valoarea-cheie va oferi o versiune clară a NSUserDefaults, este foarte spațiu limitat. Cantitatea maximă de date care pot fi stocate este de 64KB. În acest caz, Apple sugerează utilizarea acestui mecanism de stocare numai pentru cantități mici de meta informație, cum ar fi ultimul număr de pagină citit într-o aplicație de cititor. O altă problemă cu stocarea în cloud-cheie este că dezvoltatorul nu are control asupra rezolvării conflictelor. Ori de câte ori apare un conflict, valoarea-cheie cu cel mai recent timestamp este întotdeauna utilizată. Într-o aplicație în lumea reală, aceasta poate sau nu poate fi alegerea potrivită.
În opinia mea, magazinul de documente va fi elementul uriaș aici. Înțeleg că înțeleg că veți putea să sincronizați orice document pe care îl alegeți în cloud. Acest lucru va face mult mai ușor să creați lucruri precum note și aplicații de rezolvat cu date persistente și distribuite. Acest lucru se poate realiza cu ușurință, de exemplu, prin alegerea sincronizării bazei de date Sqlite sau a memoriei de date Core. Spre deosebire de metoda de sincronizare cheie-valoare, dezvoltatorii de magazin de documente vor putea să-și definească propria schemă de rezolvare a conflictelor.
Mă simt ca Apple are lucruri aproape chiar cu implementarea lor iCloud. Fructele cu înălțime scăzută pe care cred că le lipsesc sunt capacitatea de interacțiune a utilizatorilor între datele lor. Dacă ar furniza astfel de mecanisme, atunci jocurile online ar putea fi complet facilitate prin iCloud.
iOS 5 marchează începutul a ceea ce pare a fi o relație destul de serioasă cu Twitter. Nu sunt "oficiali Facebook" sau altceva, dar se vor vedea foarte multe în următoarele câteva versiuni. Apple a avut dificultăți în lovirea cordonului drept pe piața socială. Ping pare a fi un pic de dor, și se pare că Apple este gata să joace cu Twitter, mai degrabă decât să intre în joc ei înșiși. Acest lucru va fi primit de știri pentru mulți dezvoltatori. După ce OAuthcalypse, integrarea Twitter pentru orice aplicație dată a devenit mult mai complexă. Cu această versiune SDK, iOS gestionează, în esență, autentificarea pe Twitter în numele dvs., utilizatorii fiind în măsură să activeze sau să dezactiveze autentificarea Twitter a unei aplicații în Preferințele de sistem iOS. Apple oferă acum un controler de vizualizare comun pentru crearea de Tweets, de asemenea.
În agenda telefonică, Apple a inclus o funcție nouă pentru a răsturna Twitter pentru imaginile dvs. de profil de contacte. Funcționează destul de bine și vorbește despre celelalte tipuri de integrare pe care le putem vedea de la dezvoltatorii de aplicații. Totul se întâmplă și pe la călcâiul de integrare a încărcării fotografiilor Twitter, lucru care este facilitat și de noul blog Twitter.framework. În ansamblu, acest lucru face ca citirea și scrierea pe Twitter să devină mai ușor exponențial și pare a fi ceva ce vom vedea și mai mult în versiunile viitoare.
Odată cu apariția Xcode 4.0, Interface Builder (IB) a devenit o parte mult mai integrantă a experienței de dezvoltare, deoarece este acum o componentă a Xcode, mai degrabă decât o aplicație separată. Această tendință continuă cu îmbunătățirea interfeței Interface Builder și introducerea Storyboarding.
Când vine vorba de modificările interfeței IB actuale, Xcode 4.2 încearcă să promoveze o legătură mai strânsă între codul reprezentând IBOutlets și IBActions și reprezentarea lor vizuală în Xcode. Aceasta înseamnă că puteți conecta de fapt declarațiile metodei IBAction la butoanele care le vor declanșa și declarațiile IBOutlet la componenta UI reală pe care o fac.
În afară de aceasta, veți vedea și reprezentări GUI pentru lucruri precum UIGestureRecognizers, Vizualizări și Controlere GLKit și noul UIStepper.
Storyboarding este o alta mare poveste noua atunci cand vine vorba de IB. Puneți pur și simplu, lucrul cu panourile de poveste înseamnă că nu trebuie niciodată să sunați pushViewController: animat
sau popViewController: animat
din nou. Tot fluxul de controlere de vizualizare în mișcare pe și de pe un controler de navigație, precum și prezentarea vizuală modală, se poate face vizual prin Storyboarding.
În general, acest lucru permite vizualizarea fiecărui flux de ecran posibil în aplicația dvs., reducerea codului și, cel mai important, permite dezvoltatorilor să nu contribuie cu contribuția lor într-o formă utilizabilă. De multe ori transformarea de la concept / creativ la implementare / cod se pierde în traducere. Cu noua abordare storyboard, designerii pot crea reprezentări de flux care vor reduce efectiv cantitatea de muncă cerută de dezvoltatorii proiectului.
De la prima lansare a iOS, managementul memoriei a fost un punct de mare durere pentru dezvoltatori. Aș spune că majoritatea accidentelor la aplicații se datorează gestionării incorecte a memoriei. ARC își propune să rezolve acest lucru prin luarea completă a numărului de referință de la dezvoltatori. Toate metodele legate de memorie (eliberare
, reține
, AutoreleasePool
, etc) au fost acum depreciate pentru a profita din plin de ARC.
Există câteva avantaje uriașe pentru utilizarea ARC. În primul rând, reduce drastic bariera pentru dezvoltatorii mai noi pe platforma iOS, în special pentru dezvoltatorii care vin de pe platforme precum Android care folosesc Colecția Garbage. De asemenea, va reduce numărul de linii de dezvoltatori de cod care trebuie să scrie, deoarece nu mai aveți nevoie de apelurile din memorie pentru a modifica numărul de rețineri. Singura mea preocupare cu ARC este că dezvoltatorii ar putea acum să nu învețe niciodată importanța gestionării adecvate a memoriei. Acest lucru ar putea duce la practici de programare leneș și ar putea crea o creștere a numărului de aplicații de memorie.
Core Image, un cadru disponibil pentru dezvoltatorii OS X pentru moment, este disponibil în sfârșit ca parte a SDK-ului iOS 5. Acesta permite dezvoltatorilor să folosească cu ușurință o mare bibliotecă de filtre de manipulare foto și video și oferă, de asemenea, o limbă simplă pentru a le crea propriile filtre. Acum este incredibil de ușor să efectuați sarcini precum placarea, mascarea, amestecarea și compoziția mai multor imagini.
Am fost cu adevărat intrigat să văd că limbajul de filtru arată ca C de bază și este încărcat la timpul de execuție. Având în vedere această portabilitate, nu aș fi surprins dacă vom vedea un site / magazin al treia parte care vinde aceste filtre în viitorul apropiat.
Pentru un exemplu de putere de filtrare a imaginii de bază, verificați acest filtru care adaugă un efect de criptare:
Odată cu lansarea publică a iOS 5, Xcode va avea de asemenea un upgrade la 4.2. Xcode 4.2 are o mulțime de îmbunătățiri de la Xcode 4.1, în mare parte legate de noile caracteristici SDK și iOS 5. Un accesoriu non-SDK este perfecționarea programelor și integrarea GIT. GIT a devenit tehnologia dominantă a sursei de control între dezvoltatorii de iPhone și este minunat să aibă Xcode să profite de toate lucrurile pe care GIT le are la dispoziție. Schemele reprezintă noul loc în care păstrezi lucrurile de configurare a proiectului. Aceasta acoperă ce ediție construiți, cadre legate, construiți scripturi etc. Schemele pot fi partajate și, în general, facilitează testarea și distribuirea proiectelor între echipe.
Vestea cea mai mare aici este integrarea profundă a GIT și SVN. Apple a luat toate abilitățile software-ului de control sursă și a construit vizualizări ale modului în care acestea lucrează în Xcode. Fișierele sunt permanent marcate cu actualizări cu privire la starea lor (Adăugat / Modificat). Fiecare fișier poate fi afișat în vizualizarea istorică. În vizualizarea istorică veți obține 2 panouri cu o cronologie în centru, unde puteți naviga înapoi în timp pentru fișier. Există vederi complete de vina, comiterea și împingerea interfețelor de intrare și chiar afișarea sucursalelor și a conflictelor. Integrarea cu GITHub este simplă. În ansamblu, aceasta este o mare îmbunătățire. Asigurați-vă că ați aruncat o privire la acest document de la Apple, care evidențiază toate caracteristicile în detaliu.
NewsStand este încă un exemplu de maturare a platformei iOS. De-a lungul ultimelor lansări, Apple a început să creeze oferte pentru a aborda puncte comune de durere pentru dezvoltatori în mediul "sandbox" pe care l-au făcut. Game Center și iCloud sunt câteva exemple generice, dar NewsStand reprezintă o investiție de la Apple în facilitarea nevoilor speciale ale unui anumit tip de aplicație.
Cadrul NewsStand permite dezvoltatorilor să facă două lucruri. În primul rând, dezvoltatorii pot trimite o notificare push către aplicațiile lor, care le vor lansa în fundal și vor descărca ultima ediție. În al doilea rând, dezvoltatorii pot seta icoane speciale pentru a reprezenta aplicația lor în vizualizarea NewsStand. Aplicațiile NewsStand vor locui într-un dosar special NewsStand, ceea ce va crea o reprezentare comună a obiectului nativ pentru "Biblioteca" a problemelor de pe dispozitiv.
Ceea ce rămâne neclar aici este ceea ce, dacă este cazul, tipul de certificare va fi necesar să fie o aplicație NewsStand. Engadget va putea să creeze o aplicație tip NewStand? Sunt sigur că multe bloguri ar dori să aibă posibilitatea de a distribui conținut și de a le descărca în fundal pentru utilizatorii lor iOS 5+. Nu pare să existe o restricție care să permită numai o singură notificare de descărcare de fundal descărcată pe 24 de ore, va fi interesant să vedem dacă vreunul dintre mijloacele de informare numai pe internet profită de acest nou cadru.
Dacă v-ați uitat vreodată la un document de design, comparativ cu ceea ce este furnizat cu implicit Apple UIKit, și apoi a trebuit să vă rolați complet implementarea proprie pentru a se potrivi cu intențiile designerilor, atunci veți fi încântați de introducerea de comenzi personalizate UIKit! Toate controalele importante permit acum ca imaginea de fundal, culoarea nuanței și proprietățile poziției titlului să fie personalizate cu ușurință. Mă bucur foarte mult de capacitatea de a seta proprietatea imaginii de fundal. Am petrecut ore întregi recreând un UISwitch pur și simplu pentru a face să pară puțin diferit.
Acesta este un mare pas înainte în ceea ce privește personalizarea aplicațiilor. Sunt sigur că vom începe să vedem o integrare mult mai inteligentă a componentelor Apple UI. De-a lungul acelorași linii, vom vedea, de asemenea, unii oameni făcând în totalitate componente frumoase ale Apple să arate hidos.
După cum puteți spune, iOS 5 este o lansare mare. Are îmbunătățiri adânci atât pentru SDK, cât și pentru IDE cu care ne dezvoltăm cu toții. În timp ce ne-am străduit să atingem punctele mari din acest articol, există TOȚI de alte caracteristici despre care nu am putut vorbi. Iată o listă rapidă de incendii a unor modificări adiționale notabile:
Deci ce mai aștepți? Accesați iOS 5 și profitați de toate aceste caracteristici noi!
În săptămânile viitoare, Mobiletuts + va oferi tutoriale în profunzime pe multe dintre noile caracteristici ale iOS 5 SDK, inclusiv Storyboarding, Framework-ul Twitter, Core Image Framework, Suportul NewsStand și multe altele!
Spuneți-ne despre ce să scrieți votând mai jos pentru subiectele pe care sunteți mai interesant să le învățați:
Brandon Trebitowski este un dezvoltator de software și autor de la Albuquerque, New Mexico. Brandon deține o diplomă de licență în informatică de la Universitatea din New Mexico și a dezvoltat programe software în ultimii 10 ani. În august 2008, a început să iCodeBlog.com pentru a preda dezvoltatorilor aspirând cum să scrie software-ul pentru iPhone. După ce blogul a fost achiziționat de ELC Technologies în decembrie 2008, a început să lucreze cu normă întreagă pentru dezvoltarea software-ului mobil.
Brandon a coautat de curând o carte de dezvoltare iOS numită iOS 4 In Action și a devenit liderul dezvoltatorului de aplicații mobile la ELC Technologies. Are o pasiune puternică pentru programare și iubește împărtășirea cu ceilalți.
Puteți urmări postările lui Brandon pe twitter @brandontreb.
Doriți să obțineți ghidul cel mai actualizat pe SDK-ul iOS? Prinde iOS 4 în acțiune, la care Brandon a contribuit.
Collin Ruffenach este un dezvoltator de iOS cu ELC Technologies, cu sediul în Portland, OR. Collin a câștigat un premiu B.S. în Computer Systems Engineering și un M.S. în Informatică în 2010 de la Arizona State University. Cercetările sale s-au axat pe dezvoltarea iOS în scenarii bazate pe automatizarea acasă.
Începând cu anul 2008, Collin a contribuit la iCodeBlog, unde a postat atât articole, cât și scenarii pe diferite subiecte de programare iOS de la lansarea pentru prima dată a SDK-ului iOS. Collin a contribuit recent la o nouă carte numită Obiective-C Fundamente cu Manning Publishing.
Puteți urmări postările lui Collin pe Twitter: @cruffenach.
Doriți să perfecționați aceste abilități Obiectiv-C? Check out Obiective-C Fundamente, la care Collin a contribuit.
Vă mulțumim pentru lectură!