Logo tl.androidermagazine.com
Logo tl.androidermagazine.com

Pagdidikit ng 'fragmentation': ang mga developer ay tumunog sa pagsuporta sa maraming mga screen

Talaan ng mga Nilalaman:

Anonim

Tumatakbo ang Android sa iba't ibang mga aparato, na nangangahulugang tumatakbo din ito sa iba't ibang mga laki at resolusyon sa screen. Maraming mga tao ang tumawag sa "fragmentation na ito." Huwag alalahanin ang katotohanan na gumagamit sila ng mga produktong dinisenyo at binuo ng parehong paraan para sa mga taon sa kanilang desktop. Tila kung ang lahat ay hindi eksaktong pareho ay nakakakuha ito ng "fragmentation" label.

Mayroong iba't ibang mga paraan upang matugunan ang mga problema na lumitaw kapag gumagamit ka ng mga screen na may iba't ibang laki at kapal. Ang Apple ay may hiwalay na mga listahan para sa mga app na idinisenyo para sa iPhone kumpara sa iPad. Lumilikha ang Microsoft ng isang bagong eco-system para sa mga malalaking aparato sa screen. Nagbibigay ang Android ng isang paraan para sa mga developer na gumawa ng parehong app gumana nang iba para sa iba't ibang mga screen. Mayroong mabuti at masama tungkol sa bawat pamamaraan, ngunit tututuon kami sa Android dito.

Sa Android, mai-adjust ng mga application ang layout para sa iba't ibang mga laki ng screen pati na rin ang paglutas. Ito ay lahat na binuo, ngunit mayroong ilang mga bagay na kailangang ipahayag ng mga developer sa kanilang code upang magmukhang maganda ang app. Ang bagay na dapat tandaan ay kung paano ang laki ng screen at density ay magbabago sa hitsura ng app. Ang Droid DNA ay may isang mas mataas na screen na mas mataas kaysa sa Motorola XOOM tablet, ngunit hindi namin nais na makita ang isang layout ng tablet para sa mga app sa laki ng telepono.

Kailangang magbigay ng isang developer ng mga asset (mga imahe) na sapat na kalidad upang magmukhang matalas sa mataas na resolusyon (hindi kailanman isiping walang gaanong mataas na resolusyon), at tiyaking gumamit ng density independiyenteng mga yunit ng pixel kapag nagdidisenyo ng kanilang layout. Ito ang pinapanatili ang mga bagay tulad ng mga pindutan at iba pang mga kontrol mula sa pagiging talagang malaki sa mga mababang density ng screen tulad ng Galaxy S2, o mula sa pagiging tunay maliit sa mga high density screen tulad ng DNA.

Ito ay kumplikado, ngunit ang karamihan sa mga bagay na ito ay tapos na para sa iyo kapag ang pag-cod ng isang app. Ang dapat gawin ng developer ay gumawa ng tamang pagpapahayag, at magbigay ng tamang mga ari-arian upang suportahan ang anumang laki (parehong pisikal at resolusyon) o layout. Kahit na ang maramihang mga layout ng layout tulad ng Google+ app ay gumagamit ng parehong code upang masakop ang bawat naiisip na screen.

Hindi namin sinusubukan na hatulan ang mga developer dito. Ang pagsusulat ng mga app ay matigas. Ang mga developer ng Android ay ipinangangaral ang lahat ng ito mula noong paglabas ng Gingerbread, ngunit paano ito praktikal? Nagtanong kami ng ilang mga developer tungkol dito, tingnan kung ano ang sasabihin nila pagkatapos ng pahinga.

Higit pa: site ng developer ng Android ng Google.

Tinanong namin ang isang bilang ng mga nag-develop (parehong malaki at maliit) ng ilang mga pangunahing katanungan sa paksa.

  • Gaano kahirap ang pagsunod sa mga alituntunin?
  • Mukhang madali ito sa papel, ngunit mayroon bang anumang mga espesyal na isyu na iyong nakita o mga bahagi na hindi sakop ng Google?
  • Paano ito nakakaapekto sa oras ng pag-unlad at gastos, kung sa lahat?
  • Anumang higit pa tungkol sa paksang nais mong ibahagi?

Sinubukan kong gawin ang mga katanungan bilang neutral hangga't maaari upang hindi kami pumasok sa ganitong mga bias sa lugar. Kapag may pagdududa, tatanungin mo ang mga taong nakakaalam, di ba? Nagawa ko ang aking patas na bahagi ng programming, ngunit ang pag-coding sa Java at pagtatayo ng mga Android app ay ibang-iba mula sa pagsulat ng code sa C o machine code, o kahit Perl. Mayroong mga nuances na hindi ko maintindihan, kahit na nakakakuha ako ng pangkalahatang pamamaraan ng pagbuo ng isang app.

Iniisip ko ang isang mahusay na bilang ng mga kaibigang tulad ko at hindi alam ang mga pagkasalimuot ng pagbuo ng mga Android apps. Nakikita lamang namin ang sinabi ng mga developer ng Android, at pinadali nila ito. Para sa kanila, marahil ito ay - isinulat nila ang mga bagay na ito mula sa lupa mula pa noong 2007. Tingnan natin kung ano ang sasabihin ng mga tao na sumunod sa kanila.

Joe Simpson (@kennydude) - Boid

Si Joe ay isang miyembro ng Team Boid, at naglathala din ng kanyang mga aplikasyon. Siya (at ang natitirang bahagi ng kanyang koponan) ay isang mahusay na halimbawa ng mga independiyenteng mga developer na may isang pagnanasa para sa Android na na-cranked ang ilang mga kamangha-manghang mga aplikasyon.

Ang pagsunod sa mga alituntunin ay medyo mahirap, lalo na kung nais mo ng isang sandalan app ngunit nais ng mga tao sa pagiging tugma sa likod. Ang isa sa mga pinaka nakakainis na bagay ay ang nakikita kung ano ang hitsura ng d.android.com/design ngunit wala sa kung paano aktwal na gawin iyon.

Ang isang mahinang punto ay nakakapreskong kapag hindi ka maaaring gumamit ng GCM dahil sa Twitter, at hindi mo nais na gumamit ng PtR. Gayundin, ang mga app ng Google ay bumubuo ng kanilang sariling mga alituntunin. Kunin ang halimbawa ng slide-in na halimbawa, iba ang ginagawa ng Google+ kaysa sa YouTube (kahit na alam ko na ang suporta sa library ay inaasahan na ayusin ito).

Gayundin, maaari kang makakuha ng isang punto at walang dokumentasyon sa isang bagay (EdgeEffect halimbawa).

Ako ay isang mag-aaral, kaya ang mga gastos ay isang bagay na hindi ko ito tinitingnan, at oo, nangangailangan ng oras, ngunit mamahalin ka ng iyong mga gumagamit. Karaniwan, ang Live Show (ADiA, App Clinic, Office Hours) ay isang kinakailangan (sa kasamaang palad) kahit na hindi nila maialok ang puna tungkol sa mga app ng Google.

Ang Boid ay malapit nang pumunta bukas-mapagkukunan (oo!), At maaari mong makita ang app mismo sa Google Play. Makikita mo rin ang lahat ng mga apps ni Joe (mayroong ilang mga hiyas) dito mismo.

Christophe Versieux - BeTrains - SNCB Belgium; HoloEvery saanman

Ang Christophe ay nagtayo ng maraming mga aplikasyon ng Android, kabilang ang BeTrains - SNCB Belguim - isang app na may napakarilag layout na nagpapakita kung ano ang maaaring gawin sa isang mahusay na binuo na application. Habang ang karamihan sa US ay hindi kailanman gagamitin ito (ito ay isang app ng iskedyul ng tren para sa mga riles ng Belgian) nagkakahalaga ng pag-install lamang upang makita kung gaano ito nagawa. Ang mga tao sa kanlurang Europa ay tiyak na nakakaalam tungkol sa isang ito.

Bilang karagdagan, siya ay binuo ng HoloEvery saan, isang silid-aklatan na maaaring magamit ng iba pang mga developer upang makabuo ng mga aplikasyon ng estilo ng Holo para sa Android 2.1 at mas mataas. Sa maraming mga telepono pa rin ang nagpapatakbo ng Gingerbread, ito ay isang tunay na paggamot para sa mga developer na nais na panatilihing kasalukuyang naghahanap ang kanilang mga app.

Ito ay hindi mahirap sa lahat. Seryoso. Ang mahirap na bahagi ay darating kapag ang customer ay humihiling na lumayo sa mga patnubay na iyon!

Naaalala ko ang isang customer na nagnanais na maglagay ako ng mga tab sa ilalim ng screen, mga pindutan ng iPhone kahit saan, ang estilo ng iPhone na toggle at ang proyektong ito ay talagang mahirap makamit at talagang nawalan ako ng maraming oras at pera dito.

Nagalit talaga ako sa kanya nang tinanong niya ang lahat ng mga hangal na bagay na ito, at naisip niya lamang na ako ay isang tamad na developer.

Mayroon akong ngayon ng maraming contact sa kanya at kami ay ganap na muling pagsulat ng kanyang app, lumikha ng mga kahanga-hangang code sa pamamagitan ng pag-alis ng lahat ng mga walang silbi na tampok at paglikha ng isang "purong" Android app. Kailangang magkaroon ng kamalayan ng mga customer at kumpanya sa mga patnubay na iyon, malakas ang paniniwala ko.

Ang mga aklatan tulad ng ActionBarSherlock, HoloEvery saan (aking nilikha), UnifiedPreferences, at SlidingMenu ay talagang madaling gamitin at magbigay sa ilang mga linya ng code isang kahanga-hangang karanasan ng gumagamit.

Oras at gastos, tulad ng sinabi ko ay nabawasan sa pamamagitan ng pagsunod sa mga alituntunin ng Google. Ang mga pagkabigo at mga folder ng layout ay talagang madaling gamitin (at mas mahalaga upang magamit muli): isang tablet app lamang grab isang piraso ng code mula sa layout ng telepono at walang dapat isulat muli. Ang maliliit na pagbabago sa app ng telepono ay agad na makikita sa tablet app, tulad ng ginagamit na parehong Fragment.

Ang ilang mga kamangha-manghang proyekto ay nilikha ng komunidad, hindi palaging sa pamamagitan ng Google. Ang ilang mga tao, napaka-aktibo sa Google+ tulad ng Roman Nurik (Google), Reto Meier (Google) Juhani Lehtimäki, Jake Wharton, Taylor Ling,.. (Ako ay palaging natatakot na kalimutan ang mga mahahalagang tao) ay napaka nakapagtuturo. Kailangan lang malaman ng mga nag-develop kung saan titingnan at ang pag-unlad ng Android ay magiging madali para sa kanila!

Maaari kang makahanap ng BeTrains sa Google Play, at nais mong tingnan ang HoloEvery saan kung interesado ka sa pagbuo ng Android.

Matthew Runo - Zappos

Kabaligtaran sa ilan sa mga mas maliit na independyenteng mga developer na nakipag-usap namin, narinig din namin mula sa Mateo sa Zappos. Ang Zappos ay isang korporasyong tingian sa web at malamang ay may nakalaang badyet para sa disenyo sa parehong kanilang website pati na rin ang kanilang mga aplikasyon. Ito rin ay isang kumpanya na bibilhin ko mula sa regular, ngunit wala itong anumang at ang Mateo ay hindi alam na ako ay madalas na customer kapag siya ay nagboluntaryo.

Sa Zappos, dahil kami ay isang tindero, kailangan nating hawakan muna at pinakamahalaga sa aming sariling tatak. Wacky, masaya, at medyo malayo sa pader. Iyon ay sinabi, kapwa namin ay malakas na mananampalataya sa mga alituntunin sa disenyo ng Android - at lahat ng ginagawa namin sa UI ay nakuha mula sa diwa ng mga patakaran na iyon. Isang taon na ang nakalilipas, ang aming app ay halos isang port sa iOS mula sa kung paano ito tumingin at nagtrabaho. Ngayon, ito (sa tingin ko) isang hiyas ng kung ano ang maaari mong gawin sa Android. Sumunod kami sa mga alituntunin hangga't maaari - at ang aming mga taga-disenyo ay gumana mula sa kanila bilang panimulang punto.

Ang mga alituntunin sa disenyo ay hindi isang lahat at magtatapos lahat - sa huli nandoon lamang sila upang subukang itulak kasama ang disenyo ng mga android app upang mas pare-pareho sila. Nalaman namin na ang karamihan sa mga karaniwang "bagong" bukas na mga aklatan ng mapagkukunan na ginamit namin ay nagtapos bilang bahagi ng mga patnubay (sliding menu, crouton).

Ang mga alituntunin ay hindi dapat maging isang pagpigil. Ang ilang mga bagay - pangkalahatang pag-navigate - kailangang maging pare-pareho upang ang iyong app "gumagana lamang." Lahat ng iba pa - magsimula sa mga alituntunin at tumakbo sa iyong disenyo. Nais namin na ang aming app ay ATING APP - kaya hindi namin magagawa lamang ang pangunahing tema ng baseline.

Sa taong ito talaga kami nagsimula mula sa isang ground up rewrite ng aming app upang gumana sa mga fragment. Sa nakaraang 6 na buwan nagsipag kami upang magdagdag ng 7 "suporta sa tablet, at kasalukuyang nagtatrabaho kami sa suporta sa 10". Ang pinakamahirap na gawin ay pagsubok sa mga aparato, ngunit mayroon kaming isang mahusay na koponan ng QA na makakatulong sa na. Mayroon kaming 2 taong nagtatrabaho buong oras sa aming app mula noong Agosto o higit pa, bago ito ay 1 buong oras na tao.

Sa ilalim ng linya, sa palagay ko, ang mga gabay sa disenyo ng android ay makakatulong sa amin na i-streamline ang aming proseso - at sa gayon mabawasan ang mga gastos. Harapin natin ito, karamihan sa mga taga-disenyo mula sa iOS - kaya ang pagkakaroon ng isang mahusay na mapagkukunan tulad ng design.android.com ay isang mahusay na tulong upang makuha ang mga ito sa kickout ng android ecosystem.

Masasabi ko na ang mga pagpipilian sa disenyo ng Zappos ay gumagana nang maayos, at ang aking asawa ay may isang aparador na puno ng mga damit, pitaka, at bota na nagpapatibay sa aking pag-angkin. Tingnan ang kanilang Android app mula sa Google Play.

Josh Burton - jRemote

Maraming mga maliliit na application ang isinulat ni Josh para sa Android, at ang kanyang jRemote application (ito ay isang controller para sa tanyag na programa ng jDownloader PC) ay isang perpektong halimbawa ng kung paano gamitin ang mga layout upang lumikha ng isang app na mukhang mahusay sa parehong telepono at isang tablet. Pinahusay nito ang paggamit ng screen ng aparato, at binibigyan ka ng impormasyong iyong hinahanap mo mismo kung paano mo ito gugustuhin.

Ang pagsunod sa mga alituntunin ng disenyo ay medyo tuwid pasulong, hangga't manatili ka sa mga ito mula sa go go. Ang pagbuo ng isang buong app at pagkatapos ay sa pagtatapos bumalik at subukang ipatupad ang mga fragment / mga layout ng tablet atbp ay magiging isang pag-aaksaya ng oras, pagsisikap, at pagkabigo. Ngunit kung pinaplano mo ang iyong app, bumuo ng paggamit ng mga fragment mula sa simula, at lumikha ng iyong mga mapagkukunan para sa lahat ng tamang mga dpi buckets, gumagawa ito ng pagbuo ng simoy, at talagang hindi mo na kailangang gumugol ng maraming oras sa pag-iisip tungkol sa mga alituntunin. At kung mapagmataas ka, ang mga disenyo ng mga dokumento ay isang pag-click lamang ang layo. Ang mga ito ay isang mahusay na mapagkukunan.

Ito ay talagang nabigo sa akin na napakaraming aparato ay walang mga layout ng tablet. Kung ang iyong app ay binuo gamit ang mga fragment, ang pagdaragdag ng isang layout ng tablet ay maaaring gawin sa 30 minuto. Matapat, madali lang iyon.

Sa tingin ko para sa maraming mga developer, wala silang mga aparato sa tablet upang subukan, at ang paggamit ng emulator ay maaaring maging isang sakit. Ngunit ang mga bagong tool ng ADT na inilabas lamang ay mas madali. Ang view ng maraming pagsasaayos sa layout ng layout ay nangangahulugang maaari mong makita kung ano ang hitsura ng iyong layout sa 5-6 iba't ibang mga laki ng screen nang sabay-sabay. At ang mabilis nito. Siyempre kakailanganin mo pa ring subukan sa isang emulator / aparato sa kalaunan, ngunit tiyak na pinapabilis nito ang daloy ng trabaho.

Ang jDownloader ay isang madaling gamitin na programa upang magamit sa iyong desktop, at ang jRemote ay mukhang isang kahanga-hangang paraan upang makontrol ito. Kung wala pa, i-download ito mula sa Google Play at magkaroon ng isang hitsura upang makita kung paano ang isang app ay maaaring maging simple at maganda sa parehong oras.

Narinig namin mula sa maraming iba pang mga developer na medyo nagsasabi ng parehong mga bagay. Labas na kami ng silid dito upang ilista silang lahat. Ang gist ng lahat ng ito ay kung plano mo nang maaga, ang mga patnubay sa developer ng Android ay talagang gumagana para sa karamihan ng mga kaso. Natutuwa kaming marinig ito, at magpapatuloy na tamasahin ang mga mahusay na apps at suportahan ang mga nagtatrabaho na nagtatrabaho.