MOBİL GELİŞTİRİCİNİN GALAKSİ REHBERİ

287
14. Baskı MOBİL GELİŞTİRİCİNİN GALAKSİ REHBERİ

Transcript of MOBİL GELİŞTİRİCİNİN GALAKSİ REHBERİ

  • 14.Bask

    MOBL GELTRCNN GALAKS REHBER

  • Yaynlayan:

    Tm Mobil Platformlar iin Hizmetler ve Aralar Sunar

    Enough Software GmbH + Co. KG Stavendamm 22 28195 Bremen

    Almanya www.enough.de

    Geribildirimlerinizi, sorularnz veya sponsorluk isteklerinizi uraya gnderebilirsiniz:

    [email protected] Bizi Twitterdan takip edin: @enoughsoftware

    14. Bask ubat 2014te, Trkesi Ekim 2014te yaynlanmtr

    Bu kitap Creative Commons Some Rights Reserved License ile lisanslanmtr.

    Trkeye tercme edilmesine nayak olanlar:

    Dr. Grkem etin, Ali Ingr, Caner Gral, Cansu Uluda

    Sanat Ynetimi ve Tasarm:

    Andrej Balaz (Enough Software)

    Editrler:

    Richard Bloor

    Marco Tabor (Enough Software)

  • I Giri1 Mobil Galaksisi: Giri13 Mobil iin Kavramsal Tasarm25 Android43 BlackBerry Java Uygulamalar51 BlackBerry 1065 Firefox OS71 iOS84 Java ME (J2ME)95 Tizen100 Windows Phone ve Windows RT114 apraz Platformu Semek132 Mobil Siteler ve Web Teknolojileri147 Eriilebilirlik157 Kurumsal Uygulamalar: Strateji ve Gelitirme169 Mobil Mantksal Analiz178 Zengin Medya Destei Vermek184 Konum Tabanl Hizmetlerin Uygulanmas193 Yakn Alan letiimi (NFC)201 Dokunsal Titreim (Haptic Vibration) zellii210 Arttrlm Gerekliin Uygulanmas222 Gvenlik234 Test Etme252 Gelir Edinmek268 Sonu270 Yazarlar Hakknda

    Mobil Gelitiricinin Rehberiindekiler

  • IGiri

    GiriEnough Software'i 2005 ylnda kurduumuzda, ailemiz ve arkadalarmz arasnda gerekten ne yaptmz anlayan kimse yoktu. Her ne kadar cep telefonlar her yerde olsa ve SMS'ler bilinse de, uygulamalar bu kadar yaygn deildi, Uygulama kelimesi bile insanlara ok garip geliyordu; o tarihte bunlara MIDlet veya "mobil uygulamalar" adn koymutuk. Mterilerimiz iin uygulamalar tasarlamaya ve gelitirmeye devam ettik ve o tarihten bugne ilgin bir dnem geirdik. Eski platformlar kayboldu, yeni platformlar ortaya kt ve bunlardan bazlar adeta dnyay ele geirdi. Genel anlamda, mobil ekosistemi gerekten lgn bir deneyimdi.

    Mobil Gelitiricilerin Galaksi Rehberi ile bu ekosistemi yakndan takip etmeye baladk. Katkda bulunan yazarlarmz sayesinde bu klavuz -Symbian veya WebOS gibi platformlar karm olsak da- toplamda sekiz adet mobil platformu kapsamaktadr. Bu arada bu srm, Tizen'e deineceimiz ilk yayndr.

    Bu yayn imdiye kadarki en byk yaynmzdr. lk baskda 10.000 kopya baslmtr ve sponsorlarmz olmadan bunu gerekletirmek gerekten mmkn deildi. Bunlardan Paypal (developers.paypal.com adresini ziyaret ederek birok avantaj grebilirsiniz) ve SAP (mkemmel mobil platformlarn develop-ers.sap.com.com adresinde bulabilirsiniz) firmalarna teekkr ediyoruz. Ayrca bu yayn iin ilk defa sponsor olan Twilio'ya da ho geldin diyoruz. Uygulama datmnda iki faktrl kimlik denetiminden uygulamalarnz ierisinde VoIP ve mesaj gnderme zelliklerine kadar bu aralarn size nasl yardmc olacan grmek istiyorsanz www.tiwilio.com sayfasn ziyaret edin.

    http://developers.paypal.comhttp://developers.sap.comhttp://developers.sap.comhttp://www.twilio.com

  • Gelecek bize heyecan veriyor. Heyecannz bizimle Twitter zerinden @enoughsoftware veya e-posta ile paylamanz iin sabrszlanyoruz.

    Yorumlarnz drt gzle bekliyoruz!

    Robert + Marco / Enough Software

    Bremen, ubat 2014

    http://twitter.com/enoughsoftware

  • 1Mobil Galaksisi: Giri

    BY

    R

    ober

    t Vi

    rkus

    & M

    arco

    Tab

    or Mobil Galaksisi: GiriMobil gelitirme dnyasna ho geldiniz. Buras eski devlerin tkezledii ve yeni yldzlarn dzenli olarak doduu bir evren.

    Bu kitabn odakland nokta, cep telefonu uygulamalarnn gelitirilmesidir. Bu odaklanmann merkezinde u aamalar bulunmaktadr: planlama ve aklama, prototipleme ve tasarm, uygulama, i test ve kullanma sokma, bir uygulama dkknna sunu, kullanclar tarafndan kefedilme, kurulum, kullanm ve geri bildirim. Nihayetinde, kullanclarmzn uygulamalarmz kullanrken iyi vakit geirmelerini ve dier kullanclara rnek tekil etmesi iin bize olumlu yorumlarda bulunmalarn isteriz.

    Ana platformlar iin uygulama yntemleri hakknda bilgi almak iin okumaya devam edin. Katlmda bulunmak iin bu ilk deneyiminizse, vakit kaybetmemenizi neriyoruz. Dnya hzl bir ekilde bilgisayar dnyasndaki uygulama hkimiyetine gei yapyor ve eer vakit kaybederseniz, dierleri sizi oktan gemi olacak.

    Mobil uygulamalar gelitirmek, dier yazlmlar gelitirmekle kyaslandnda birok ortak nokta bulundursa da belirli zelliklere sahiptir. Bir sonraki blmde bunlara deineceiz.

    Topoloji: Biim Katsaylar ve Kullanm ablonlar

    Akll telefonlar, tabletler ve temel fonksiyona sahip tele-fonlar arasnda bir fark gzetmek zorundasnz. Her bir biim katsays kendi kullanm zorluklarn ne karmaktadr; rnek vermek gerekirse, bir tabletin ierisinde gezinme yntemi

  • 2Mobil Galaksisi: Giri 2

    bir telefonla kyaslandnda farkl olacaktr. TV sistemleri de mobil gelitiriciler iin baka bir biim katsaysna sahip olmaktadrlar.

    Elbette bir Android uygulamasnn kullanm ablonu, iOS'takilerden farkl olacaktr; aynen Windows Phone uygulamalarnda ve benzerlerinde olduu gibi.

    Bu yzden, btn olas cihaz boyutlarnda (form factor) ve hatta hedeflediiniz tm mobil platformlarnda birbirinin ayns bir kullanm tecrbesi sunmaktan kanmalsnz. Aksi takdirde hedeflediiniz kullanc tabannza herhangi bir stn yan olmayan, vasat bir hizmet sunmu olursunuz.

    Yldz Oluumu: Bir Mobil Hizmeti Yaratmak

    Bir mobil hizmeti yaratmak iin birok farkl yntem bulunmaktadr:

    Uygulama Web sayfas SMS, USSD1 ve STK2

    UygulamaUygulamalar dorudan cihaz zerinde almaktadr. Bunlar doal (native), web tabanl veya karma uygulama olarak oluturabilirsiniz.

    1 en.wikipedia.org/wiki/USSD

    2 en.wikipedia.org/wiki/SIM_Application_Toolkit

    http://en.wikipedia.org/wiki/USSDhttp://en.wikipedia.org/wiki/SIM_Application_Toolkit

  • 3Mobil Galaksisi: Giri

    Native UygulamalarBir native uygulama, platforma zel API'lar ile belli bir dilde programlanmaktadr. Tipik olarak platforma zel merkezi bir uygulama dkknndan satn alnr, indirilir ve gncellenir. Native uygulamalar, dier uygulamalara kyasla genellikle en iyi performans, en derin entegrasyonu ve en iyi genel kullanc deneyimini sunar. te yandan, native gelitirme sreci genel-likle en karmak gelitirme seeneidir.

    Web UygulamalarBir web tabanl uygulama HTML5, JavaScript ve CSS bazldr ve herhangi bir uygulama dkknna bal deildir. Bir uygulamann grnmn ve davranlarn kopyalamaya alan, yerel olarak saklanan mobil bir sitedir.

    Web tabanl nl bir uygulama rnei, daha fazla gelir iin uygulama dkknn terk eden Financial Times uygulamasdr. Bunun aksine, web tabanl Facebook iOS uygulamas, performansn ve kullanlabilirliini ciddi anlamda artrmak iin bir native uygulamaya dntrlmtr. Web uygulamalarn gelitirme srecini kolaylatrmak iin Phonegap3 gibi farkl uygulama gelitirme atlarn kullanabilirsiniz.

    Karma UygulamalarNative veya web tabanl uygulamalarn gelecekte ok popler olup olmayaca konusunda birok tartma mevcuttur.

    Birok mobil uygulama gelitiricisi iin bu tartmalar, karma uygulamalarn ortaya kmasyla beraber azalmaya balamtr: bir uygulama, daha iyi bir performans ve platform

    ile uygulamann daha iyi uyum salamas iin native kodu kullanrken, uygulamann dier unsurlar iin HTML5

    temelli ierikle beraber bir webview kullanabilir. Ortaya

    3 www.phonegap.com

  • 4Mobil Galaksisi: Giri

    kan uygulamann baz ksmlar bir native uygulama gibi i grrken dier paralar web teknolojileri ile desteklenmek-tedir. Web tabanl paralar, gncelleme ierii sunmak iin nternet balantsn kullanabilir. Bu bir engel olarak grnse de, web teknolojilerinin kullanm gelitiricilerin, uygulama dkknlarna gncelleme sunmadan ierii ve zellikleri deitirip gncellemelerine frsat vermektedir. Buradaki asl zorluk, gerekten kullanc dostu ve ekici bir uygulama yarat-mak iin native ve web teknolojilerinin benzersiz zelliklerini bir araya getirmektir.

    Web sitesiBir web sayfas ounlukla anz zerinde yer alr ancak, yerel olarak veri saklamak veya cihazn mevcut yerini renmek amacyla JavaScript'e sahip cihaz zerindeki eitli telefon zelliklerine de eriimde bulunabilirsiniz. Uygulamalarn tersine mobil web siteleri doalar gerei farkl platformlara yaylrlar. Bir mobil taraycnn daima WebKit tabanl olduunu dnmemelisiniz; Bkz. Mobil web gelitiricilerinin sitelerini yalnzca WebKit iin optimize etmemeleri iin Microsoft'un ricas4.

    SMS, USSD ve STKSMS, USSD veya STK ile basit hizmetler gerekletirilebilir. Herkes SMSin (Ksa Mesaj Servisi) nasl altn bilmektedir ve her telefon SMSi desteklemektedir ancak dier karmak hizmetler iin kullanclarnz metinsel komutlar hatrlamalar gerektii konusunda ikna etmeniz gerekir. Baz operatrler, yalnzca WiFi cihazlarda alan mesaj hizmetleri iin API'lar

    4 blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10.aspx

    http://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-ihttp://blogs.windows.com/windows_phone/b/wpdev/archive/2012/11/15/adapting-your-webkit-optimized-site-for-i

  • 5Mobil Galaksisi: Giri

    sunmaktadrlar Deutsche Telekom'un a API'lar gibi5. USSD (Yapsal olmayan Yardmc Hizmet Verisi), dz metin bazl menleri gstermek iin kullanlan bir GSM protokoldr ve becerileri telefon operatr ve cihaza gre deimektedir. STK (SIM Uygulama Yazlm), dorudan bir telefonun SIM kart zerindeki dk seviyeli ancak etkileimli uygulamalarn devreye sokulmasna frsat vermektedir.

    STK, akll telefon uygulamalar zerinde bu kadar alma yaplyorken biraz alakasz kalabilir ancak rnek vermek gerekirse, m-pesa Kenya ve dier lkelerdeki yaam unsurlar ve finansal ilemlerde deiiklik yapan bir STK uygulamasdr.6

    Mobil letim Sistemleri Evreni

    Mobil Dnya, biliim teknolojilerinin dier alanlarna kyasla ok daha eitlidir. Kiisel bilgisayarlar iin yazlm gelitirirken, ana iletim sisteminden birini (Windows, Mac OS, Linux) seersiniz. Konu mobil olduunda, ok daha fazla alternatif bulunmaktadr. Bu kitap u anda en fazla kullanlan mobil iletim sistemlerini tantmaktadr ancak mobil alandaki deiikliklerin, baka hibir alanda olmayan bir hzda hareket ettiini unutmayn. Gelecek vaat eden birok teknolojinin, arkalarndaki irketler ne kadar byk veya bu irketlerin gemi piyasa alakas ne kadar geni olursa olsun, ortaya ktktan sonra aniden yok olduuna ahit olduk.

    Bu yzden okumaya devam edin; piyasann gnmzde nasl olduunu grn ve bunu gzlemleyin (en azndan, klavuzumuzun son srmne sahip olduunuzdan emin olun).

    5 www.developergarden.com/apis

    6 memeburn.com/2012/03/how-m-pesa-disrupts-entire-economies/

    http://www.developergarden.com/apishttp://memeburn.com/2012/03/how-m-pesa-disrupts-entire-economies/

  • 6Mobil Galaksisi: Giri

    Yldzs Gk cisimleri: Android ve iOSnsanlar mobil uygulamalar hakknda konuurken genellikle Android veya iOS'tan bahsetmektedirler. Neden? Piyasa pay sz konusu olduunda bu iki platform nemli piyasalarn %90n ellerinde tutmaktadrlar7 (kresel saylar iin aadaki tabloya bakn). Developer Economics 2014 aratrmas8 ayrca, iOS ve Android'in gelitirici tketici bilinci asndan en yksek seviyede olduklarn gstermektedir. Bu, hangi platformun "temel" olduuna bakmakszn gelitiricilerin kullandklar platform yzdesidir. Android %71 ile birinci sradayken, iOS bunu %55 ile takip etmektedir.

    Bunun bir dier anlam da u: Uygulamanz Android veya iOS iin gelitirecekseniz, ok fazla rakibiniz olacaktr.

    Karanlk Madde: Temel Fonksiyonlu Telefon PlatformlarAkll telefonlar, zerine en fazla haber yaplan cihazlar olsa da, dnyann birok blgesinde temel fonksiyonlu telefon anlay egemenliini korumaktadr. Kresel olarak 2013n ikinci eyreinde satlan btn telefonlarn %50i temel fonksiyonlu cep telefonlaryd9 ve kurulum temeli bundan ok daha fazlayd. En byk satclar Samsung ve Nokia'yd. Nokia, Nokia maazas ile byk bir baarya sahip olduunu iddia etmektedir; uygulamalarnn indirme saysnn 1 milyonu getii 500'den fazla gelitirici mevcuttu10. 2011'de yaplan aratrmalar, popler olmayan platformlarn gelitiriciler iin aslnda ok daha byk bir ans yarattn gstermitir: Nokia'nn OVI maazasndaki temel fonksiyonlu cep telefonu

    7 www.idc.com/getdoc.jsp?containerId=prUS24442013

    8 DeveloperEconomics.com

    9 gartner.com/newsroom/id/2573415

    10 developer.nokia.com/Distribute/Statistics.xhtml

    http://www.idc.com/getdoc.jsp?containerId=prUS24442013http://DeveloperEconomics.comhttp://gartner.com/newsroom/id/2573415http://developer.nokia.com/Distribute/Statistics.xhtml

  • 7Mobil Galaksisi: Giri

    uygulamalar, Apple Uygulama Maazas'ndaki indirme saylarna kyasla 2,5 kat daha fazlayd11.

    Temel fonksiyonlu telefonlar iin native uygulamalar gelitirmek mmkndr ve bunun yolu retici firmalarla yakn ilikide olmaktan geer. Bunun dnda kalan tm dier yazlmclar, bu telefonlar iin Java ME veya BREW kullanarak uygulama gelitirirler.

    Magnetarlar: Windows Phone ve Windows RTWindows Phone, akll telefon evrenindeki 'nc ekosistem'12 haline geldi; talya ve Latin Amerika gibi blgelerde iPhone'dan daha fazla sat rakamlarna sahiptir. Windows 8.1 ve Windows 8'in pazar pay artk, Net Applications'a gre13 btn Mac OS X srmlerinin toplamn gemitir.

    Super Nova'lar: Sailfish OS, Firefox OS, BlackBerry 10 ve AliyunBu platformlar mkemmel baar hikyelerine mi dnecekler ya da mobil endstrinin lanetli cihazlar olarak tarihe mi gmlecekler? Kimse tam olarak bilmiyor, ancak yorumlamaya ak olarak karmak mesajlar bulunuyor.

    Fin irket Jolla14, 2013'n drdnc eyreinde Sailfish OS15 ile piyasa giri yapt. Bu OS eitli inceleme puanlar ald, bu yzden Sailfishin 2014 yl ierisinde gelimesini izlemek ok ilgin olacak.

    11 http://www.research2guidance.com/apps-on-nokias-ovi-store-had-2-5-times-higher-download-numbers-in-q2-2011-compared-to-apps-on-apple-app-store

    12 kantarworldpanel.com/global/News/news-articles/Apple-iPhone-5S-outsells-5C-three-to-one-in-Great-Britain

    13 netmarketshare.com/operating-system-market-share.aspx

    14 jolla.com

    15 sailfishos.org

    http://kantarworldpanel.com/global/News/news-articles/Apple-iPhone-5S-outsells-5C-three-to-one-in-Great-Britainhttp://kantarworldpanel.com/global/News/news-articles/Apple-iPhone-5S-outsells-5C-three-to-one-in-Great-Britainhttp://netmarketshare.com/operating-system-market-share.aspxhttp://jolla.comhttp://sailfishos.org

  • 8Mobil Galaksisi: Giri

    Firefox OS16, eletirmenler ve gelitiriciler tarafndan ok sevildi; bu yzden bu klavuz ierisinde bu platform iin zel bir blm ayrdk. Kresel olarak farkl yerlerde piyasaya ktktan sonra ciddi bir pazar payna sahip olmay baaramad. Firefox OS ayrca tabletler iin de kacak.

    BlackBerry 10'a gsterilen ilk tepkiler phe ve heves arasnda gidip geldi. Btn ilgili operatrler BlackBerry 10 cihazn sata sunsalar da, bu yeni platformun benimsenmesi yava oldu. BlackBerrynin satlar da baarsz olmu gibi gzkse de, bu yeni iletim sisteminin geleceini grmek ok ilgin olacak.

    Aliyun, in'de, bilinmeyen bir pazar pay ile tek cihaz zeri-nde piyasaya kt. Google'n, Acer', Open Handset Alliance yeliinde Aliyun ieren bir cihaz karmamas ynnde bask yapmas ve Aliyun'un uygulama dkkannda korsan Google Android uygulamalar bulunmas sebebiyle17 platform belli bir seviyede poplerlie sahip oldu. Aliyun'un Linux temelli olduu iddia edilse de, kaynak kodu henz ortaya kmad.

    Beyaz Cce Yldzlar: Symbian ve BadaBugn, Symbian ve Samsung Bada, eski grkemli gemilerinin sadece birer glgesine dnm durumdalar. Bada ok ksa mrl olsa da, Samsung, Tizen'i yaratrken Bada'nn baz bileenlerini kulland. Symbian bakm moduna alnd ve son byk patlamasn yar fotoraf makinesi yar telefon olan PureView 808 ile yapt. Bu platformlarn nemi ve pazar pay btn dnyada hzl bir ekilde azalmaya devam ediyor.

    16 mozilla.org/firefox/os

    17 news.cnet.com/8301-1035_3-57513651-94/alibaba-google-just-plain-wrong-about-our-os

    http://mozilla.org/firefox/oshttp://news.cnet.com/8301-1035_3-57513651-94/alibaba-google-just-plain-wrong-about-our-oshttp://news.cnet.com/8301-1035_3-57513651-94/alibaba-google-just-plain-wrong-about-our-os

  • Yeni Doan Yldzlar: Tizen ve Ubuntu2014 ylnda ok ilgin yeni platformlar greceiz.

    Tizen18 cihazlar, 2014'n ilk eyrei iin duyuruldu. Sam-sung ve Intel tarafndan sessiz sedasz ancak srekli bir ekilde n plana kartlan Tizen, akll telefonlarn yan sra TV'ler, tabletler ve ara ii bilgi-elence sistemlerinde kullanlmak zere gelitirilmitir. Bu srmde Tizen hakknda ayr bir blm iermemiz, platformu ciddiye aldmz ve Bada'dan daha uzun mrl olacan dndmz gstermektedir.

    Son olarak, Canonical firmas mobil cihazlar iin Ubuntu'yu19 sundu. Buradaki ama bir bilgisayarn tam gcn telefona uyarlamakt. Ubuntu Edge telefonuna fon yaratmak iin oluturulan kitle kaynak almas20 hedefine ulamad ancak yine de, Ubuntu pazara girmeyi hedeflemektedir.

    Gne Sistemi: Akll telefon OS Pazar PaylarKresel akll telefon pazar paylarna baktnzda, ortaya kan kan tablo yle:

    Platform Pazar Pay 2013 3. eyrek Yllk Deiim

    Android (Google) %81,3 %+6,3

    iOS (Apple) %13,4 %-2,2

    Windows Phone (Microsoft)

    %4,1 %+2,0

    BlackBerry %1,0 %-3,3

    Dier %0,2 %-2,8

    (Kaynak: blogs.strategyanalytics.com/WSS/post/2013/10/31/Android-Captures-

    Record-81-Percent-Share-of-Global-Smartphone-Shipments-in-Q3-2013.aspx)

    18 tizen.org

    19 ubuntu.com/devices/phone

    20 indiegogo.com/projects/ubuntu-edge

    http://blogs.strategyanalytics.com/WSS/post/2013/10/31/Android-Captures-Record-81-Percent-Share-of-Global-Smartphone-Shipments-in-Q3-2013.aspxhttp://blogs.strategyanalytics.com/WSS/post/2013/10/31/Android-Captures-Record-81-Percent-Share-of-Global-Smartphone-Shipments-in-Q3-2013.aspxhttp://tizen.orghttp://ubuntu.com/devices/phonehttp://indiegogo.com/projects/ubuntu-edge

  • 10Mobil Galaksisi: Giri

    iOS ve Android dnda dier platformlarda vakit har-camak isteyen gelitiricilerin bouna vakit kaybettiini dnebilirsiniz. Ancak gerek bu kadar basit deil. 2013'n ilk eyreinde Dnya apnda ilk kez akll telefon sat temel fonksiyonlu telefon satlarn gese de21 bir ok blgede temel fonksiyonlu telefonlar akll telefonlara kyasla hl ok daha fazla miktarda satlmaktadr.

    Bu arada, Sailfish OS ve Firefox OS pazar paylarnn - kk miktarda olsa bile henz bilinmediini gz nnde bulun-durun. Bu platformlardan herhangi bir tanesi sizin iiniz iin en iyi zm olabilir galaksinin merkezinde binlerce rakip uygulama arasndan syrlmaya uramak yerine evrenin br ucunda kk ve tek bir gezegen olmak, ok daha avantajl olabilir.

    Bunlarn kresel rakamlar olduunu unutmayn bir platfor-mun blgesel pazar pay dier pazarlardan bambaka olabilir. Yerelletirilmi ieriin kendi nemini artrd bir Dnya'da, hedef piyasanzn ayrntlarn ve zelliklerini bilmeniz ok nemlidir. rnek vermek gerekirse, gnmzde in 2013'n nc eyreinde dnya apndaki Android satlarnn %40'dan fazlasndan sorumludur22, te yandan in'de retilen cihazlar Google Play maazas veya baka bir Google hizmeti olmadan sunulmaktadr.

    Hedef blgenizdeki pazar pay hakknda bilgi almak iin comscore23, StatCounter24, VisionMobile25 veya Gartner26 gibi kaynaklar kullann.

    21 idc.com/getdoc.jsp?containerId=prUS24085413

    22 engadget.com/2013/11/14/android-ios-market-share-gartner-q3-2013/

    23 comscoredatamine.com/category/mobile

    24 gs.statcounter.com

    25 visionmobile.com

    26 gartner.com

    http://idc.com/getdoc.jsp?containerId=prUS24085413http://engadget.com/2013/11/14/android-ios-market-share-gartner-q3-2013/http://comscoredatamine.com/category/mobilehttp://gs.statcounter.comhttp://visionmobile.comhttp://gartner.com

  • 11Mobil Galaksisi: Giri

    Zaman ve Mekn Hakknda

    Gelitiriciler olarak, setiimiz platformlar iin byk bir tutkuya sahibiz. Yine de bunlarn yalnzca birer teknoloji rn olduunu unutmamalyz teknolojiler yalnzca belli bir sre ve mekn asndan nemlidir. Evet, marka tartmalar elencelidir ancak daha geni bir adan bakldnda daima samadr. 80'lerde Atari'ye kar Amiga kavgas yapanlar elini kaldrsn! Belki de ounuz bunu yapmad ancak ne dediimizi anlyorsunuz galiba. FairPhone27 veya IndiePhone28 gibi inisi-yatifler gelecekte iletim sistemi veya setiiniz bir reticiden daha nemli bir hale gelebilir.

    Uzayda Kaybolmak

    Eer mobil dnyasnn usuz bucaksz uzay ortamnda kaybolursanz, endielenmeyin, sakin olun ve okumaya devam edin. Seeneklerinizi gzden geirin ve zmek istediiniz sorunu ele aln, hedef kitlenizi ve teknik bilginizi gzden geirin. Hizmetinizi tasarlarken dikkatli bir ekilde aln, mevcut soruna odaklann ve ii basit tutun. "Her eyi" yapmak yerine bir eyi dzgn bir ekilde yapmak daha nemlidir. zmnzn tasarmna ve kullanlabilirliine yatrm yapn. Son olarak, halihazrda baarl olan bir eyi kopyalamak yerine doru bir fikri bulmak ounlukla daha iyidir. Bu klavuz, bilgiye dayal bir karar vermenize yardmc olacaktr.

    27 fairphone.com

    28 indiephone.eu

    http://fairphone.comhttp://indiephone.eu

  • 13Mobil iin Kavramsal Tasarm

    BY

    A

    nna

    Alfu

    t Mobil iin Kavramsal TasarmBir fikri bulduunuzda bu, mkemmel bir histir. Derhal ne yapacanz bilir ve potansiyel kullanclarn kar karya kalabilcekleri sorunu zersiniz. Bu ilk aamadan, nihai uygu-lama kullanm aamasna gitmek zorludur. Yalnzca istikrarl bir uygulama yaratmak istemez, ayrca yardmc ve kullanm kolay olmasn da istersiniz.

    Kullanc Deneyimi, kullanclarn uygulama ile etkileme getikleri srada ve sonrasnda uygulamay alglama ekilleri olarak tanmlanabilir. Tasarm iyi miydi, kullanm elenceli ve kolay myd? Verimli veya elenceli bir ekilde kullanld m? Her ey dzgn alt m? Tasarm ve kod iine girimeden nce uygulama konseptinizi iyi belirlemenizde fayda vardr. Aada sraladmz balklar uygulama fikrinizin tasarm ve ina aamalarna gemesinde size yardmc olacaktr.

    Fikri Bulmak

    Birka cmle kullanarak uygulamanz aklayan bir kavram zeti yazn. Ekip yelerinizin dnda farkl kiilere bunu anlatmaya aln. Onlarn bunu nasl anladklarn ve buna ilgi duyup duymadklarn grn.

    Kitlenizi tanyn. Tasarm ulatrmak istediiniz kiiler kimler ve uygulamanz kullanmadaki amalar ne? Eer mmknse onlarla konuun ve bunu kendi azlarndan duyun. Bulgularnz belgelendirmede yararl bir teknik, her farkl kullanc grubu iin bir profil oluturmaktr.

    eriinizi belirleyin. Uygulamann ana ieriinin ne olacan kendinize sorun. Uygulama trne gre bunlar

  • 14Mobil iin Kavramsal Tasarm

    fotoraflar, kullanc tarafndan oluturulmu haberler, zgn veriler (kitaplar, meta veriler, mzik, vb.) olabilir. Grntl-enecek temel bilgileri veya nemli etkileimi tandktan sonra, tasarm aamasna doru bir ekilde odaklanmak daha kolay olacaktr. rnek olarak, bir e-kitap okuyucu uygulamas yaratyorsanz, yaztiplerinin iyi kalitede olduundan ve temel ekran tasarmnzn okura kitap metnini okuyabilmesi iin yeterli alan sunduundan emin olmanz gerekecektir.

    Temel ilevi tanmlayn. Kullanclar arayzle neler yapabil-ecekler? Bu ilevleri birer fiil gibi dnp, listeleyebilirsiniz: dola, payla, satn al, vb. Baz faaliyetlerin bununla ilgili olduunu greceksiniz. rnek olarak, eer uygulamanzn gl bir topluluk unsuru mevcutsa, bir grup ierisine alabileceiniz eitli zellikler bulunabilir (paylama, yorum yapma, mesaj gnderme, takip etme gibi). Bu baka bir kullanc arayz (UI) ipucu olabilir. Benzer ilevler birbirine yakn bir ekilde sunulduunda, kullanclara yardmc olabilir.

    Mobil deneyim iin tasarm yaparken, uygulamanzn kullanlaca balam dnmeniz gerekir. Bu hem arayz kullanlabilirliini hem de kullanclar nasl etkileyecek? Kullanclarn pr dikkatine sahip olabilecek misiniz? Ya da onlar hep ayn yerde mi kalacaklar? Uygulamanz tek bana alan bir rn m? Dier hizmetlerle ilikili mi ya da onlara ihtiya duyuyor mu? Eer bir internet balants yoksa neler olacak? Uygulamanzn kullanc arayz (UI) bu durum karsnda nasl bir tepki gsterecek?

    Pazar aratrmas iin biraz vakit harcamanz yararl olacaktr. Sizinkine benzer dier uygulamalar deneyin. Ne yaptklarn grn: kullanclarn onlar hakkndaki dncelerini renin. Bu, girdiiniz alan renmenin iyi bir yoludur.

    Birok soruyu cevapladktan sonra, yaratmak istediiniz uygulama hakknda genel bir kavrama gcne sahip olacaksnz. Fikir gelitirme aamasnda daha da ileriye gittiinizde bu

  • 15Mobil iin Kavramsal Tasarm

    sorular sormaya devam edin. Odaklanmak iyidir ve ulamak istediiniz hedefe ne kadar yakn olduunuzu sorgulayn. Bazen elde etmek istediiniz eyler zamanla deiebilir. Belirlenmemi bir kavram, bir zamanlar ulamak istediiniz hedefin sizi baka fikirlere ve yerlere gtrmede yeni bir ara olarak karnza kabilir.

    Kullanc Deneyimini Tasarlamak

    Uygulamann genel kullanc arayzn yakalamak ve gelitirmek iin kullanc aklar, bilgi mimarisi, etkileimler, plan yaps ve grsel tasarm hakknda biraz dnmeniz gerekir. rnnzn evresi ierisinde bunlar bir arada nasl alacaktr? Her bir kullanm durumunun ayrntlar nelerdir? Uygulamanz kullanrken kullanclarn karlaabilecekleri sorunlar nelerdir ve geri bildirim bu konuda nasl yardmc olabilir? rnnz hazr olduktan sonra, bunun hakknda insanlara nasl bilgi vereceksiniz ve insanlar bunu kullanmalar iin nasl ikna edeceksiniz?

    Kullanc aklarBaz uygulamalar (bir kamera uygulamas gibi) belirli bir grevi gerekletirmek iin izgisel bir aka sahiptir. Bazlarnda yinelemeli bir yaklam bulunur. Kullancnn A noktasndan kp birka admdan sonra B noktasna ulat ideal senaryo(lar)nz tanmlayn. deal yoldan sapabilecek olan dier olas yollar aratrn. Ak emalar izin veya farkl senaryolar ayrntl bir ekilde ortaya karmak iin wireframe aralarn kullann.

  • 16Mobil iin Kavramsal Tasarm

    WireframeWireframe, tasarmn T'sine dahi dokunmadan projenin kurgusu ve ilevsellii hakknda hem yazlmcya hem de mteriye fikir sahibi olma olana salayan proje n hazrlk aamasdr. Wireframe aamasnda arayznzn bir "telkafes"i andran izgilerle taslan oluturursunuz. Wireframe iziminin amac, fonksiyonlar ve genel arayz kavramn yakalamaktr. Belli bir ekran iin bir wireframe, belli bir senaryoya gre farkl srmlere/durumlara sahip olacaktr. Bir a hatas iin ayn ekrann farkl eitlerini izmeniz gerekecektir.

    Ayrntl planlara dalmadan nce, uygulamay gelitireceiniz iletim sisteminin "Temel Tasarm Klavuzu"nu bilmeniz gerekmektedir. Her bir platform farkl bir ortamdr ve doru dntrmeleri kullanabilmek iin bu klavuzlar okumanz gerekir. Aksi ekilde davranmak iin iyi bir nede-niniz olmad srece, tavsiye edilen yntemleri takip edin. Aratrmanz yapn ve nternet'teki mevcut desen galerilerin-den faydalann.

    "Native" grnme yakn olmak size, hzl kullanlabilirlik faydalar salayacaktr. Kullanclarn, cihazlarndaki dier uygulamalarda bulunan standart davranlar veya grsel ilemleri hatrlamalar olasdr. Platforma zel balantlar, bu kitabn ilgili blmlerinde bulacaksnz.

    Wireframe izimi, kalem kat yardm ile yapabilir veya mevcut olan Wireframe aralarndan herhangi birini kullanabil-irsiniz. Yeni bir yazlm renerek vakit kaybetmemek adna kat zerinde izim yapmak, daha kolay olabilir. izimleri deitirmek ve silip yeniden balamak, ok daha kolay ve bazen de elencelidir. Wireframe aamasnda bu ie zel yazlmlar kullanmann sunduu en temel avantaj, bu tasarmlar zerinde bakalaryla birlikte alabilme olanan ve taslaklaklar tklanabilir prototiplere dntrebilmektir.

  • 17Mobil iin Kavramsal Tasarm

    PrototiplendirmeBir prototip, uygulamanzn etkileimini grselletirmenin ve deerlendirmenin en iyi yoludur. Byk bteli bir projenizin olmas veya hafta sonlarnda kiisel bir proje zerinde almanz fark etmez; uygulamanzn nispeten tamamlanm bir prototip srm olmas, kavramnz dier kiilere iletmek ve bunun hakknda tartmak iin en iyi yntemdir. Prototip, nihai kod ve mkemmel znrl gelitirmeden nce yaplmas gereken bir aamadr. Kabul edilmi, tklanabilir bir gezinti, ekiplerin amalarndan sapmadan hedeflerine doru ulaabilmeleri iin yararl bir referans olacaktr.

    Bir prototipi bir araya getirmenin "mkemmel" bir yolu yoktur. Sizin iin hangi teknik uygunsa onu kullanabilirsiniz. Kat prototiplendirmeden zel oluturulmu aralardan bir tanesini kullanmaya veya tklanabilir srmleri bir araya get-irmeye kadar (standart sunum aralar gibi) eitli yntemleri kullanabilirsiniz. Eer kod yazma beceriniz mevcutsa, bir HTML prototipi oluturmak da iyi bir yntemdir. Mevcut ereveleri ve ktphaneleri, nihai rne benzeyecek ve onun gibi davrana-cak bir prototip tasarlamak iin kullanabilirsiniz.

    Kod yazmaya balamadan nce, btn prototipi bitirmenize gerek yoktur. inizi organize etme eklinize gre, ilerledike uygulamann eitli paralarna odaklanabilir ve hatta gerek kodun hzl iterasyonlarna doru hareket edebilirsiniz. Yine de, ilk uygulama fikirleri, eksik modelleri geerli klmada daha hzl bir yntem olacaktr.

    cretsiz pek ok prototipletirme yazlm mevcuttur ve cretli olanlarnn da ou deneme srmleri veya snrl sayda proje iin cretsiz hesap seeneklerine sahiptir. Gn getike yeni prototipletirme uygulamalar da ortaya kmaktadr. Deneyebileceiniz ve seebileceiniz baz uygulamalar unlardr:

  • 18Mobil iin Kavramsal Tasarm

    Uygulamalar ilgili Durumu

    App in seconds appinseconds.com

    Web tabanl, iPhone iin prototi-plendirme.

    (ticari)

    Axure axure.com

    Masast uygulamas, tel kafesleme ve prototiplendirme.

    (ticari)

    Balsamiq Mockups balsamiq.com

    Wikiler ve hata izleme aralar iin masast uygulamas veya eklentiler, Wireframe arac.

    (ticari)

    Fluid UI fluidui.com

    Web tabanl, iOS, Andorid, Windows ve web projeleri iin prototi-plendirme.

    (ticari)

    Mockingbirdgomockingbird.com

    Web tabanl wireframe ve prototiplendirme.

    (ticari)

    OmniGraffle omnigroup.com/products/omnigraffle

    Masast uygulamas ve wireframe. (ticari)

    Pencil pencil.evolus.vn

    Masast uygulamas veya Firefox eklentisi; zgr GUI prototi-plendirme arac.

    (cretsiz)

    POP popapp.in

    iPhone ve Android uygulamas, elle izilen tasarmlar ve fotoraflar tklanabilir prototiplere dntrr.

    (cretsiz)

    Proto io proto.io

    Web tabanl, prototiplendirme. (ticari)

    http://proto.iohttp://appinseconds.com/http://www.axure.com/http://balsamiq.com/http://www.fluidui.com/http://gomockingbird.com/http://www.omnigroup.com/products/omnigraffle/http://www.omnigroup.com/products/omnigraffle/http://www.omnigroup.com/products/omnigraffle/http://pencil.evolus.vn/http://popapp.in/http://proto.io/

  • 19Mobil iin Kavramsal Tasarm

    Uygulamalar ilgili Durumu

    Proty protytype.com

    Web tabanl, hassas wireframe arac.

    (cretsiz)

    UX Pin uxpin.com

    Web tabanl, tasarm ve wireframe. (ticari)

    Grsel tasarmGrsel olmayan girdileri kullanan bir uygulama yaratmadnz srece, uygulama arayznz grafiklere dayanacaktr. Grsel tasarm ayrntlarna odaklanmanz, uygulamanzn kullanc deneyimini artracak ve dier uygulamalar karsnda bir adm nde olmasn salayacaktr.

    Konumlandrma ve grsel hiyerari, arayznzn kullanlabilirliini artrr. Yerleim, ekrandaki unsurlarn konumlandrlma ayrntlarn ve birbirleriyle olan ilikilerini belirler. Kullanclar uygulama arayzn bir kere rendikten sonra bu, ak boyunca tutarl kalmaldr. rnek olarak, eer temel eylem dmeniz ekrandan ekrana renk deitiriyorsa, bunun kullanclar zerindeki etkisini dnn; kafalar karmayacak m? Deiikliin nemini anlayabilecekler mi? Eer renk deiiklikleri kasti ise, bunlar iyi ve mantkl sebepler iin yaptnzdan emin olun.

    Dzen tasarmlarna ve wireframe seviyesindeki etkileimlere benzer olarak, baz tasarm kararlar, belli platform kurallarna gre ekillenebilir. Uygulamanz, tasarland platforma gre farkl grsel elere sahip olabilir. Tasarmlarnzn, yaztipi kullanm, standart simgeler, dzen kurallar iin tavsiye edilen uygulamalar takip ettiinden emin olun. Yineliyoruz: daha fazla bilgi ve belirli online kaynaklar iin balantlar grntl-emek amacyla bu klavuzda bulunan platforma zel blmlere baknz.

    http://www.protytype.com/http://uxpin.com/

  • 20Mobil iin Kavramsal Tasarm

    Kullanclarn uygulamanz ile etkileime geebilmeleri iin marka kimliinin kullanc arayz (UI) iersinde engelleyici olmayacak bir ekilde bulunmas nemlidir. stenilen grnty ve duyguyu eklemek iin arka plan, kontrol renklerini, belki de eitli resimleri veya dzen seeneklerini kullann. lave grafikleri kullanabileceiniz baka bir yer ise (eer mevcutsa) al ekrandr.

    Son olarak, balatma simgesi, uygulamanzn grlecei, tanmlanaca ve deerlendirilecei ilk grsel unsur olacaktr. Bunun gzel grndnden emin olun. Eer uygulamanz birden fazla platformda yaynlamak istiyorsanz, kolaylkla tanabilir olan bir izim yaratabilmeniz asndan tasarm gereksinimlerini erkenden kontrol edin.

    Birden fazla ekran iin tasarm yapmakSrekli olarak deien mobil cihaz pazarnda uygu-lama arayznzn farkl ekran boyutlarnda ve grnt younluklarnda nasl grneceini gz nnde bulundurmanz gerekmektedir. Wireframe aamasnda grsel leklenebilir-likkullanllk dengesi zerine kafa yormak, her ne kadar bu tr ayrntlarla uramak iin biraz erken olsa da; bu size daha sonraki gelitirme ve test sresi srelerinde muazzam vakit kazandrabilir. Eer bu konu sizin iin tamamen yeni bir konsept ise, Duyarl Web Tasarm'nn (Responsive Web Design) iyi rneklerine bakarak hakknda konu hakknda daha fazla fikir edinebilirsiniz. Web tasarmclar bu sorunlar uzun bir sredir zmektedirler. Bir kez daha yineleyelim:, bu konu hakknda platforma zel "Tasarm Klavuzlar"n gzden geirmek yararl olabilir.

  • 21Mobil iin Kavramsal Tasarm

    Kullanc testiArayz konseptinizi dorulamak iin en iyi yntem, ksa bir sre ierisinde bunu gerek kullanclarn nne koymaktr. Bitmi ve cilalanm bir rne sahip olana kadar beklemenize gerek yoktur. Hatta erkenden test srecine girmek, hzl bir ekilde ie yaramayan fikirleri ortaya karmas asndan size byk miktarda vakit kazandrabilir. Tasarmlarnz gelitirmede ne kadar ok vakit harcarsanz, bunlardan vazgemeniz ve yeniden balamanz o kadar ok zor olacaktr. Neredeyse bittiini dndnz bir konsept hakknda geribildirim almak, hzl bir ekilde gncelleyebileceiniz tklanabilir bir prototip hakknda geri bildirim almaya kyasla daha zordur.

    Birka kiiden, prototipinizi kullanarak eitli grevler yapmalarn isteyin. Eer tasarladnz uygulama bir mzika-lar ise, onlardan bir ark almalarn isteyebilirsiniz. Eer uygulamann belirli ilevlerinden emin deilseniz, kullancnn dikkatini, bir ark seip daha sonra bunun yerine baka bir ark semek gibi, farkl unsurlara ekebilirsiniz. En drst geribildirimi alabilmek iin kiileri, onlar prototiplerinizi kullanrken ynlendirmeyin.

    Ayrca mevcut uygulamalar zerinde test oturumlar yapabilirsiniz. Dierlerinin, sizin uygulamanzda olmayan zelliklere ne kadar dikkat ettikleri sizi artabilir. Testlerden rendiiniz unsurlar en mmkn ekilde kendi uygulamanza dahil edin.

  • 22Mobil iin Kavramsal Tasarm

    Daha fazlasn renin

    Online birok kaynak bulunmaktadr. Kullanabileceiniz kaynaklardan bazlar unlardr:

    Online dergiler

    Konigi: konigi.com Smashing Magazine (UX tasarm blm): uxdesign.

    smashingmagazine.com UX Magazine: uxmag.com UX Matters: uxmatters.com UX Mastery: uxmastery.com

    Kitaplar

    Susan Weinschenk. 100 Things Every Designer Needs to Know About People. Teknoloji ile etkileime girerken insanlarn neden belirli ekilde davrandklarn gsteren aratrma bulgular.

    Steve Krug. Rocket Surgery Made Easy. Kullanlabilirlik test oturumlarnn nasl yaplaca ynnde bir klavuz.

    This is Service Design Thinking. Hizmet tasarm i aknn zellikleri ve teknikleri. thisisservicedesignthink-ing.com

    Mobile Developer's Guide To The 5th Dimension. Bu klavuzun kk kardei UX/UI tasarmna odaklanmaktadr. wip.org

    Dier kaynaklarNielsen Norman Group: nngroup.com

    Interaction Design Foundation: interaction-design.org

    http://konigi.com/http://uxdesign.smashingmagazine.com/http://uxdesign.smashingmagazine.com/http://uxmag.com/http://www.uxmatters.com/http://uxmastery.com/http://thisisservicedesignthinking.com/http://thisisservicedesignthinking.com/http://www.wip.org/http://www.nngroup.com/http://www.interaction-design.org/

  • 23Mobil iin Kavramsal Tasarm23 Mobil iin Kavramsal Tasarm

  • 25Android

    Android

    Ekosistem

    Android platformu, Google'n liderliini yapt Open Handset Alliance tarafndan gelitirilmektedir ve kaynak kodlar Kasm 2007'den beri kamuya aktr. Donanm imalatlarnn ou tarafndan kullanlmas, platformu en hzl byyen akll tele-fon iletim sistemi haline getirdi. 2013n drdnc eyreinde satlan akll telefonlarn %91den fazlas Android tabanlyd!1. Mays 2013'de dzenlenen Google I/O etkinliinde Google, u ana kadar 900 milyon Android cihaznn etkinletirildiini2 ve bunlar arasnda tabletler, medya oynatclar, set st cihazlar, masa st telefonlar ve tat elenceli sistemleri olduunu duyurdu. Google'n kendi akll gzl Google Glass, Android'in hafif bir srmyle alyor ve hem web hem de native uygulamalar destekliyor. Baz Android iermeyen cihazlar da, daha az fonksiyona sahip olsalar da, Android uygulamalarn altrabilmektedir. Bunlar arasnda Android runtime desteine sahip BlackBerry 10 iletim sistemi, yeni ak kaynak kaynak kodlu Sailfish3 ve kitle fonlamas desteine sahip oyun konsolu Ouya bulunmaktadr.

    1 www.gsmarena.com/android_worldwide_marketshare_crosses_80_for_the_first_time-news-7171.php

    2 gigaom.com/2013/05/15/google-io-statshot-900-million-android-devices-activated/

    3 sailfishos.org

    BY

    T

    im M

    esse

    rsch

    mid

    t

    http://www.gsmarena.com/android_worldwide_marketshare_crosses_80_for_the_first_time-news-7171.phphttp://www.gsmarena.com/android_worldwide_marketshare_crosses_80_for_the_first_time-news-7171.phphttp://gigaom.com/2013/05/15/google-io-statshot-900-million-android-devices-activated/http://gigaom.com/2013/05/15/google-io-statshot-900-million-android-devices-activated/http://sailfishos.org

  • 26Android

    Ocak 2014 itibariyle, Google Play'de 1.000.000'u akn mevcut uygulama bulunmaktadr.4.

    Android, platform iin yazlm uygulamalar altrmak iin Dalvik sanal makinesini ve nceden kurulu pek ok uygulamay barndran bir iletim sistemidir. Platform her alt ayda bir yeni zelliklerle srekli gncellenerek hzl bir ekilde bymektedir; bu klavuz kaleme alnd srada en gncel Android srm 4.4 (kod ismi "KitKat") idi. Kendisinden nce gelen srmlerde olduu gibi KitKat, getirdii iyiletirmeler, ince ayarlar ve dzeltmelerle fazla grsele odaklanmadan daha ok arka taraf ilgilendiren minr bir gncelleme olarak dnlm. Kitkat ile telefonun depolama alanna erimek iin baz yeni birleik yollar, yeni bir yazdrma altyaps ve cihaz sensrleri modu ekleyen Google, gelitiricilerin daha verimli ve tutarl uygulamalar yazabilmesini hedefliyor. Bu ilavelerin yan sra deme ve ballk programlar balamnda kullanlabilecek bir teknoloji olan NFC Host Kart Emlasyonu eklendi. Son Android srmyle kzltesi alc gzlere gelen yerel destek sayesinde, televizyonlar, set st ve dier eitli elektronik cihazlar iin

    4 www.appbrain.com/stats/number-of-android-apps

    1.3%Froyo 2.2

    1,4%KitKat 4.4

    0.1%Honeycomb 3.2

    Gingerbread 2.3.3 - 2.3.7

    21.2%

    Ice Cream Sandwich4.0.3 - 4.0.4

    16.9%

    59,1%

    Jelly Bean4.1 - 4.3

    35.9%API 16

    15.4%API 17

    7.8%API 18

  • 27Android

    uzaktan kumanda uygulamalar gibi yaratc uygulamalarn n alyor.

    Android iin gelitirme yaplrken en fazla tartlan konu-lardan bir tanesi sistemin paralanmasdr: Farkl imalatlar tarafndan farkl cihazlarn fazla miktarda bulunmas ve platformun hzl bir ekilde ilerlemesi, Android uygulamanzn her yerde alp almayaca konusunda bir belirsizlik yaratmaktadr. Ayrca, yalnzca ok az sayda telefon ve tablet modeli (%1,1) en yeni OS srmn desteklemektedir. Yaptnz uygulamann tm Android cihazlarna uyumlu olmas iin yazlm altyapsnn Android 2.2 veya yukarsndaki5 tm srmleri desteklemesini salamalsnz.

    Android uygulamalarnn salam bir kullanc deneyimine ve tutarl bir grnme sahip olmasn tevik etmek iin, Google bir tasarm klavuzu6 oluturdu. Renk dzenleri, tasarm modelleri ve yaygn kullanm kalplarnn nemine deinen klavuz, Android ekosistemi iin uygulama yaratma sresince faydalanabileceiniz mkemmel bir yn gstericidir.

    n Gereksinimler

    Android iin ana programlama dili Java'dr. Ancak unutmayn, Java ktphanelerinin yalnzca belirli bir alt setini desteklen-mektedir ve Android ile almayan platforma zel birok API'lar bulunmaktadr. "Neler ve Niin" sorularnza evrimii olarak yant bulmak iin Android'in Gelitirici Rehberine7 ve "Nasl" sorularnza yant bulmak iin referans belgelerine8 bakabilirsiniz. Google ayrca, yeni gelitiricilerin eitli iyi

    5 developer.android.com/resources/dashboard/platform-versions.html

    6 developer.android.com/design

    7 developer.android.com/guide

    8 developer.android.com/reference

    http://developer.android.com/resources/dashboard/platform-versions.htmlhttp://developer.android.com/designhttp://developer.android.com/guidehttp://developer.android.com/reference

  • 28Android

    pratikleri renebilmelerine yardmc olmak iin "Android Eitimleri"9 isimli belgelendirme kaynan sunmaktadr. Bu kaynak, uygulama navigasyonu ve uygulamalar aras iletiim gibi temel konularn yan sra, akll Bitmap indirmeleri ve daha iyi arj mr iin uygulamanz optimize etmek gibi gelimi zellikler hakknda da bilgi edinmenizi salayan bir blm.

    Gelitirmeye balamak iin Windows, Mac OS X ve Linux iin mevcut olan Android SDK'ya10 ihtiyacnz var. SDK iinde uygulamalar oluturmaya, test etmeye, uygulamaladaki hatalar ayklamaya ve analiz etmeye yarayan aralar bulu-nuyor. Android Development Tools (ADT)11, IDE'ler ile ente-grasyondan sorumludur ve gelitirme srecinizin olabildiince rahat olmasn salamaya yarar.

    IDE desteiBugn Google, IntelliJ temelli "Android Studio" ve Eclipse ("Eclipse + ADT Eklentisi olarak bilinir") gibi nceden yaplandrlm IDE'leri Android Developer Tools ile etkin bir ekilde bir arada sunuyor. Bu aralar kullanmanz, haricen SDK kurulumuna gerek brakmad iin vakit de kazandrr ve Android'e daha uygun olan bir deneyim sunar. rnein Android Studio dorudan Gradle destei ile gelmektedir. Bu yeni IDE ile string ve renkler gibi uygulama kaynaklarn referans numaralarndan faydalanarak daha gelitirirken kod satrnda grebilirsiniz.

    Yakn bir gelecekte Eclipse'in yerine gemesi hedeflenen yeni gelitirme ortam Android Studio henz beta aamasnda olduu iin baz hatalar iermektedir; eer bu sizin iin

    9 developer.android.com/training/index.html

    10 developer.android.com/sdk

    11 developer.android.com/tools/sdk/eclipse-adt.html

    http://developer.android.com/training/index.htmlhttp://developer.android.com/sdkhttp://developer.android.com/tools/sdk/eclipse-adt.html

  • 29Android

    herhangi bir sorun yaratrsa, Eclipse ile devam etmeniz daha uygun olacaktr.

    IDE Eklenti destei Paketlenmi srm

    Eclipse Ayr ADT paketi Eclipse + ADT Eklentisi

    Intellij Ayr Android eklentisi

    Android Studio

    Daha fazla bilgi ve gerekli indirmeler, Android belgelerindeki "Aralar"12 blmnde bulunabilir.

    Native gelitirmeAndroid NDK13, uygulamanz iin native bileenlerin yazlmasn mmkn klar. NDK, bunu native metotlarn arlar iin JNI'dan ve native olmayan metotlar callback olarak sunan native alt snflardan ald gle salar. Daha verimli veri ilemeye ihtiya duyan kiiler ve oyun gelitiricileri iin nemli bir husustur.

    Gerekleme (mplementasyon)

    Uygulama mimarisiAndroid uygulamalar genellikle Activity'ler, Service'ler, BroadcastReceiver'lar ve veri salayclarnnn karmndan oluur ve bunlarn tmnn uygulamann manifest dosyasnda beyan edilmesi gerekir.

    Activity, bal olduu kullanc arayz ile birlikte

    12 developer.android.com/tools

    13 developer.android.com/tools/sdk/ndk

    http://developer.android.com/toolshttp://developer.android.com/tools/sdk/ndk

  • 30Android

    uygulama ilevlerinden bir para sunar. Service, arka planda alan grevler iin kullanlr ve bu yzden dorudan grsel sunumun bir paras deildir. Broadcast Receiver, sistemin, dier uygulamalarn ya da kendi uygulamanzn yaynlad mesajlar ynetmeye yarar. Provider yani veri salaycs ise alt ksmlardaki depolama mekanizmalarn (rnein SQLite) soyut-layarak, bir uygulamann ieriine arayz salayan bileendir.

    Bir uygulama ok sayda bileenden oluabilir. rnek vermek gerekirse, arayz iin bir Activity'yi ve uzun sren grevler iinse bir Service'i kullanabilirsiniz. Bileenler arasndaki iletiim Intent'ler ya da Android Arayz Tanm Dili (AIDL) ile ynetilen uzak prosedr arlaryla (RPC) salanr.

    Intent'ler, bir eylem ile birlikte kullanc konumu veya bir URL gibi verileri paket halinde tutar. Bu Intent'ler, platfor-mda belli davranlar tetikleyebilir ve isterseniz Intent'leri uygulamanzn iinde bir mesaj sistemi gibi kullanlabilirsiniz. rnek olarak, bir web sayfasn gsterme Intent'i web taraycsn aacaktr. Bu temel ilkenin gl yn, herhangi bir ilevi gerekletirme ilemini baka bir uygulamann stlenmesini salayabilmesidir; Android sistemi, belli bir Intent iin daima tercih edilen uygulamay kullanr. rnek vermek gerekirse, bir haber okuyucusu uygulamas tarafndan tetiklenip alm bir web sayfasnn "payla" Intent'i ile bir e-posta istemcisi alabilir veya kullancnn tercihlerine gre ve yklenen uygulamaya gre bir metin mesajlama uygulamas tetiklenebilir. Paylama Intent'ini beyan eden herhangi bir uygulama bu durumda kullanlabilir.

    Bir uygulamann kullanc arayz, Android'e zel XML yerleim dosyalaryla Java kodundan ayr bir yerde yazlr. Farkl ekran boyutlar, farkl diller ve cihaz zellikleri iin Java koduna dokunmadan farkl yerleim dosyalar oluturulabilir. Bu ama dorultusunda, yerelletirilmi stringler ve grseller, ayr kaynak klasrlerinde organize edilir. Tabii ki, Java kodu

  • 31Android

    ierisinde de yerleim tanmlayp tasarlayabilirsiniz veya dinamik UI gncellemelerine frsat vermek iin her iki stratejiyi bir arada kullanabilirsiniz.

    SDK ve EklentilerGelitirmenize yardmc olmas iin SDK ierisinde birok ara bulunur. Bunlardan en nemlileri:

    android: Yeni bir proje oluturmak veya sanal cihazlar ve SDK srmlerini ynetmek iin kullanlr.

    adb (Android Debug Bridge): Cihazlar sorgulamak, balamak ve cihazlara (sanal cihazlar dahil) dosya tamak, uygulama kurmak ve bunun gibi etkileimleri gerekletirmek iin kullanlr.

    emulator: Bir sanal cihazn tanmlanm zelliklerini taklit etmek iin kullanlr. Balamas iin biraz beklemek gerekir, bu yzden her yeni proje derlemesinde balatmak yerine bir kere balatp kullann.

    ddms: Cihaznzn veya emlatrnzn ierisine bakmak, kayt mesajlarn izlemek, a gecikmesi ve GPS pozisyonu gibi emlatr zelliklerini kontrol etmek iin kullanlr. Hafza tketimini izlemek ve alan grevleri kapatmak iin de kullanlabilir. Eer bu ara alyorsa, isterseniz Eclipse hata ayklaycsna emlatrde alan bir grevi balayabilirsiniz. Bunun tesinde ddms, 4.0 altndaki Android srmlerinde ekran resmi yaratmak iin (root yetkisi olmadan) tek yoldur.

    Buradaki drt aratan daha fazlasn (alan metotlarn izlerini gsteren, arayz didik didik edip her trl bilgisini veren, rastgele olaylarla uygulamanz test eden aralar) SDK'nin tools/ dizininde bulabilirsiniz.

    IDE eklentileri, bu dosyalarn hepsinin ynetilmesine yardmc olmak iin vardr. IntelliJ'in 11.x srm, bir grsel

  • 32Android

    tasarm editr iermektedir; bylece arayz bileenlerini editre srkleyerek hzl prototipleme yapmak istediinizde Eclipse ya da IntelliJ arasndan istediinizi seip kullanabilir-siniz.

    Uygulamanzla ilgili frlayan hatalar (exception) gibi sorun-larla karlayorsanz, DDMS kaytlarn kontrol etmeyi veya Logcat mekanizmasn kullanmay unutmayn. Uygulamann dzgn almas iin gerekli btn izinleri koymay unutup unutmadnz kontrol etmenizi salarlar. rnek vermek gerekirse, uses-permission elementi14 ierisinde beyan etmeniz gereken android.permission.INTERNET iznini unuttuunuzda bununla ilgili kayd grebilirsiniz.

    Geni ekranl cihazlar iin Android 2.3'den sonra sunulan Fragment15 gibi zellikleri kullanyorsanz, Googlen sunduu Android Uyumluluk Destekleme paketini projenize eklediinizden emin olun. Bu pakete SDK iinden ulaabilirsiniz ve Android Sanal Cihaz (AVD) Yneticisi de kullanarak, Android 1.6'dan16 Android 2.3e kadar uygulamanz herhangi bir kullanm sorunu oluturmadan Android 3.0+ zellikleriyle gelitirebilirsiniz. En geni geriye dnk srm desteini sunmak iin uygulamalarnzda v4 destekleme paketlerini kullandnzdan emin olun. Ayrca Android 2.1 ve yukars iin ActionBar kullanmanz salayan, evrimii17 olarak belgelenmi, ActionBar desenini gerekleme yolunu salayan bir v7 appcompat destekleme ktphanesi de bulunmaktadr.

    Android 3.1+ iin uygulamanz gelitirmeniz, ana ekran widget'larnzn boyutlarn deitirebilmenize, USB zerinden dijital kameralar, oyun ubuklar ve dier cihazlara

    14 developer.android.com/reference/android/Manifest.permission.html

    15 developer.android.com/guide/topics/fundamentals/fragments.html

    16 android-developers.blogspot.com/2011/03/fragments-for-all.html

    17 developer.android.com/tools/support-library/features.html

    http://developer.android.com/reference/android/Manifest.permission.htmlhttp://developer.android.com/guide/topics/fundamentals/fragments.htmlhttp://android-developers.blogspot.com/2011/03/fragments-for-all.htmlhttp://developer.android.com/tools/support-library/features.html

  • 33Android

    balanabilmenize olanak salayacaktr. Android 4.x srmleri, geniletilebilen bildirimler, kilit ekran widget'leri ve yz alglamasna sahip bir kamera gibi ilgin zellikleri beraber-inde getiriyor. Native hesaplama (computing) altyaps olan Renderscript (3.1'de tantld), byk lde deitirilmitir ve artk dorudan grafik ileme becerileri sunmamaktadr ancak bunun yerine ar veri ileme ilemleri iin kullanlabilir.

    Daha eski Android srmlerine sahip cihazlara ynelik geriye dnk uyumluluk salamak iin Google, Play Store zerinden gncellenen ve Google Maps gibi en yeni ktphaneleri ekleyen Google Play Services altyapsn18 kullanmaya balad. Eer kullanc kimliini dorulamay amalyorsanz, uygulamanza gerek kullanc verilerinin faydalarn sunacak Google+ Sign'n yeteneklerine bir gz atmak isteyebilirsiniz. Bu ilevsellik kullanc adna Google hesabnn kullanmna izin veren OAuth 2.0 eriim jetonlar araclyla ynetiliyor.

    Test Etme

    Bir uygulamay test etmenin ilk adm, onu bir emlatr veya gerek cihaz zerinde altrmaktr. Daha sonra gerekirse DDMS aracyla hata ayklama yapabilirsiniz.

    Android iletim sisteminin btn srmleri, herhangi bir modifikasyon olmadan cihazlar zerinde alacak ekilde yaratlm olsa da baz donanm reticileri, platformun paralarn deitirmi olabilirler. Bu yzden, eitli cihazlar zerinde test etmek ok nemlidir. Hangi cihazlarn en popler olduunu grmek iin AppBrain'in listesine19 bakn.

    Testi otomatik hale getirmek iin Android SDK, kullanl

    18 developer.android.com/google/play-services/

    19 www.appbrain.com/stats/top-android-phones

    http://developer.android.com/google/play-services/http://www.appbrain.com/stats/top-android-phones

  • 34Android

    ve yetenekli test enstrman20 aralar ile gelmektedir. Testler, SDK'da bulunan Android mock nesneleri kullanlarak standart JUnit biimi kullanlarak yazlabilir.

    Instrumentation snflar UI gzlemleyebilir ve tua basmak gibi sistem olaylarn gnderebilir. Test metotlarnz bu olaylar gerekletikten sonra uygulamanzn durumunu kontrol edebilir. MonkeyRunner21, btn uygulamay test etmek iin kullanlan gl ve geniletilebilir bir test otomasyon aracdr. Bu testler hem sanal, hem de fiziksel cihazlarda altrlabilir.

    SDKnin 21. srmnde Google, Android Jelly Bean ve yukarsnda fonksiyonel UI testleri yapmaya yarayan, daha verimli bir UI test otomasyon altyapsn22 sunmutur.

    Bu ara, uiautomatorviewer komutuyla kabukta (shell) altrlabilir ve gsterilen View'lar hakknda baz bilgiler de dahil olmak zere o anki arayz yakalayp size gsterir.

    Testlerin gerekletirilmesi nispeten kolaydr: Testlerinizi yazdktan sonra Ant ina sistemi yardmyla bir JAR dosyas olarak testinizi oluturursunuz. Daha sonra bu dosyann cihaznza yklenmesi ve adb shell uiautomator runtest komutuyla altrlmas gerekecektir.

    Ekim 2013te Espresso23 adnda yeni bir ara Google tarafndan piyasaya srld. Bu ara kullanc arayznz test etmek iin hzlca prosedrel testler yazmanz salayan, kullanm kolay bir API sunmaktadr.

    Robotium24 gibi ak kaynakl test altyaplar, dier otomatikletirilmi testlerinizi tamamlar. Hatta Robotium, uygulamann kaynak kodu mevcut olmasa bile APK dosyalar

    20 developer.android.com/guide/topics/testing/testing_android.html

    21 developer.android.com/guide/developing/tools/monkeyrunner_concepts.html

    22 android-developers.blogspot.de/2012/11/android-sdk-tools-revision-21.html

    23 googletesting.blogspot.de/2013/10/espresso-for-android-is-here.html

    24 code.google.com/p/robotium

    http://developer.android.com/guide/topics/testing/testing_android.htmlhttp://developer.android.com/guide/developing/tools/monkeyrunner_concepts.htmlhttp://android-developers.blogspot.de/2012/11/android-sdk-tools-revision-21.htmlhttp://googletesting.blogspot.de/2013/10/espresso-for-android-is-here.htmlhttp://code.google.com/p/robotium

  • 35Android

    zerinden test edilmesine olanak salar. Roboelectric25, standart/masast JVM ierisindeki IDEnizde testleri dorudan gerekletirebilen baka bir mkemmel aratr.

    Otomatikletirilmi testleriniz, Jenkins veya Hudson gibi srekli entegrasyon sunucular zerinde altrlabilir. Roboelectric, standart bir JVM zerinde alr ve Android'in alma zaman (runtime) ortamna ortamna ihtiya duymaz. Robotium dahil dier otomatikletirilmi test altyaplar, Androidin Instrumentation snflarn baz alr ve Dalvik JVM ierisinde altrlmalar gereklidir. Android Emulator Plugin26 gibi eklentiler, bu testlerin Hudson ve Jenkins ierisinde yaplandrlmasna ve altrlabilmesine frsat vermektedir.

    na Etme

    Setiiniz IDE ierisinde uygulamanz dorudan ina etmeninz yan sra Android uygulamalar oluturmak iin daha rahat yntemler bulunmaktadr. Gradle27 artk, Android iin resmi olarak desteklenen bir ina otomasyon aracdr. Bunun yan sra, topluluk tarafndan desteklenen bir maven eklentisi de28 bulunmaktadr. Her iki ara da, farkl Maven depolarndan (rn: Maven Central Repository29) gelen bamllklar kullanabilir.

    Google, ktphaneleri Gradle iin Android ariv (.aar) dosyas eklinde tamaktadr. Bu dosyalar Android SDK Yneticisi tarafndan elde edilebilir. Gradle iin "android-library" eklentisini kullanarak kendi ktphanelerinizi veya SDKlarnz paketleyebilme frsatna sahipsiniz. Gradle dostu

    25 robolectric.org/

    26 wiki.hudson-ci.org/display/HUDSON/Android+Emulator+Plugin

    27 tools.android.com/tech-docs/new-build-system

    28 code.google.com/p/maven-android-plugin/

    29 www.maven.org

    http://robolectric.org/http://wiki.hudson-ci.org/display/HUDSON/Android+Emulator+Pluginhttp://tools.android.com/tech-docs/new-build-systemhttp://code.google.com/p/maven-android-plugin/http://www.maven.org

  • 36Android

    Android ktphanelerini bulmak iin mkemmel bir kaynak olan "Gradle, please"30 sayfasna bakabilirsiniz.

    mzalamak

    Uygulamalarnz daima ina sreci (build) srasnda, debug ya da release imzas ile imzalanr. mzalama cretlerinden (ve gvenliinden) kurtulmak iin kendi imzalama mekanizmanz kullanabilirsiniz.

    Ayn imza, uygulamanzn gncellemeleri iin de kullanlmak zorundadr bu yzden keystore dosyanz veya ifrenizi kesin-likle kaybetmemelisiniz. Unutmayn: btn uygulamalarnz iin ayn anahtar kullanabilirsiniz veya her yeni uygulama iin yeni bir tane oluturabilirsiniz.

    Datm

    En yeni ve mkemmel uygulamay yarattktan ve test ettikten sonra, onu "Play" ismindeki Androidin uygulama maazasna koymanz gerekir. Bu, mterilere ulamak ve uygulamalarnz satmak iin iyi bir yerdir. Android 1.6 ve st srmleri, Google Wallet vastasyla uygulama ii satlar da desteklemektedir. Bu, ekstra ierik, zellik setleri ve benzerlerini Android Play31 yapsn kullanarak uygulama iinden satabilmenizi salar. Ayrca uygulama metadatas iin dier uygulama portallar tarafndan kullanlan bir kaynak olarak kullanlmaktadr. Uygulamanz Android Playe yklemek iin play.google.com/apps/publish/ adresine gidin.

    Google Alveri hesabnz ile hizmete ye olmanz ve 25 dolarlk yelik creti demeniz gereklidir. yeliiniz

    30 gradleplease.appspot.com

    31 developer.android.com/guide/google/play/billing/

    http://play.google.com/apps/publish/http://play.google.com/apps/publish/http://gradleplease.appspot.comhttp://developer.android.com/guide/google/play/billing/

  • 37Android

    onaylandktan sonra uygulamanz ykleyebilir, ekran grntleri ve tanmlar ekleyebilir ve daha sonra uygulamay yaynlayabilirsiniz.

    Uygulamanzn AndroidManifest.xml dosyas ierisine versionName, versionCode, uygulama simgesi ve bir uygu-lama ad etiketi eklediinizden emin olun. Manifest dosyas iinde beyan edilen zellikler (uses-feature ksmlar), farkl cihazlar iin uygulamalar filtrelemek iin kullanlmaktadr.

    Google Play maazasnda yaplan en yeni deiikliklerden bir tanesi de rnn aamal olarak grcye kmasna ilave olarak alfa ve beta testleridir. Bu sayede uygulamay btn kullanclara datmadan nce dosta bir kullanc testi yapmanz mmkn olur. Ayrca, Gelitirici Konsolunda doru seenekleri ayarlayarak sadece belirli cihazlar hedefleyebilir ve kullanc tabannz anlamanza yardmc olacak ayrntl istatistikleri kartabilirsiniz.

    Yerleik yerelletirme hizmetini kullanarak kk bir cret karlnda uygulamanza yeni dilleri kolaylkla ekleyebilirsiniz bu konunun nemi hakknda ayrntl bilgi iin Yerelletirme Kontrol Listesini32 kontrol ettiinizden emin olun.

    Android Playde birbirine rakip olan birok uygulama bulunmaktadr. Alternatif uygulama maazalarn33 denemek isteyebilirsiniz. Farkl deme yntemleri sunarlar ve belirli tketici gruplarn hedefleyebilirler. Bu maazalardan bir tanesi, Kindle Fire tablet ailesi zerinde ykl gelen Amazon Appstoredur.

    32 developer.android.com/distribute/googleplay/publish/localizing.html

    33 onepf.org/appstores/

    http://developer.android.com/distribute/googleplay/publish/localizing.htmlhttp://onepf.org/appstores/

  • 38Android

    Uyum

    Androidin uyumu arttka satcya zel ekosistem de kendi SDKlaryla, tamamen zelletirilmi Android srmleriyle ve alfa ve beta testi gibi unsurlar ieren aralaryla geliti. Bunun bir avantaj, kullanclar iin mkemmel bir deneyim sunan ok sk bir entegrasyon oldu ancak dezavantaj da, ekosistemin artan lde blnmesidir. Satcya zel maazalar genellikle, kendilerinden baka aralar kullanan genel uygulamalarn yklenmesine izin vermemektedirler.

    Bunlarn bir rnei, temel olarak Android'in zelletirilmi bir trevi olan ve Android tableti en byk pazar pay ile temsil eden Amazon'un Kindle Fire ekosistemidir: Uygulama iin satn almlar veya haritalar etkinletirmek iin Googlen Play hizmetlerini kullanmak yerine benzer ilevsellik sunan Amazonun kendi ktphanelerini kullanmanz gerekir. Bunun arkasnda mantk basittir: Kindle cihazlar, Google'n hizmetlerini altrmak iin gerekli olan ktphanelere sahip deildir. Amazon ayrca, kendi kitlenizi hedeflemenize yardmc olan kendi reklam ve oyun hizmetlerini sunmaktadr. Drt farkl cihaz iin (1. Jen, 2. Jen, HD 7 ve HD 8.9) emlatrler sunan Amazon, gereki bir sanallatrma ortam sunarak uygulamanz mkemmel hale getirmenize yardmc olur. Kendi gelitirici topluluklar iin sunduu test frsatnn yan sra Amazon, kendi Appstorelarna yklenen herhangi bir uygula-maya inceleme yapabiliyor.

    Doru kaynaklar bulmanza yardmc olabilecek birka unsur aada grlebilir:

  • 39Android

    Satc Belgelendirme

    Amazon developer.amazon.com/sdk/fire.html

    HTC htcdev.com

    LG developer.lge.com

    Motorola developer.motorolasolutions.com/community/android

    Samsung developer.samsung.com/android

    Sony developer.sonymobile.com

    lgin bir ekilde, gitgide daha fazla satc (Samsung ve HTC gibi) "Google Play Edition" ismindeki cihazlarnn eklentisiz Android srmlerini sunmaya baladlar. Bu cihazlar normal modellere kyasla ayn donanm kullanrlar ancak herhangi bir yazlm kiiselletirmesi ile sunulmamaktadrlar. Bu cihazlar dorudan Googlen Play Storeu aracl ile datlrlar ve Google deneyimine bal kalmak isteyen kullanclara en modern cihazlar sunarlar.

    http://developer.amazon.com/sdk/fire.htmlhttp://www.htcdev.comhttp://developer.lge.com/main/Intro.devhttp://developer.motorolasolutions.com/community/androidhttp://developer.motorolasolutions.com/community/androidhttp://developer.samsung.com/androidhttp://developer.sonymobile.com/

  • 40Android

    Gelir Kayna Oluturma

    Bir uygulamay, mevcut uygulama maazalarndan birinde satmann yan sra, zerinden gelir kayna oluturmak iin birok farkl yol vardr. Bunlardan bir tanesi, tklamaya veya grntlenmeye dayal reklam olabilir ve bu dzenli bir gelir salayabilir. Bundan baka, Google Play Storeu kullanan Google'n kendi hizmeti34 veya PayPal'n Mobile SDK35 ve Mobil deme Ktphanesi36 gibi Uygulama ii Faturalandrma olanaklar bulunmaktadr. ou hizmetler, ilem bazl cretler ve sunduklar paket yelik olanaklar, paralel demeler veya nceden onaylanm demelerle ilgili farkllk gsterebilir. Eer uygulamanz iin olduka etkili eyler kullanmak istiyorsanz, kamera etkileimli kredi kart tarama iin card.io'nun SDKsn37 kullanmak isteyebilirsiniz.

    Samsungun Appsi veya Amazonun Appstoreu gibi satcya zel ekosistemler iin optimize edilmi gelir kayna frsatlarndan yararlanmak amacyla onlarn SDKlarn kullanmanz gerekebilir.

    deme ynteminizin, uygulamanz yaynlamak istediiniz farkl maazalarn artlar ve koullar ile uyumluluk gsterdiinden emin olun. zellikle, farkl kurallarn mevcut olduu dijital indirmelere bakmak isteyebilirsiniz.

    34 http://developer.android.com/google/play/billing/

    35 github.com/paypal/PayPal-Android-SDK

    36 developer.paypal.com/webapps/developer/docs/classic/mobile/gs_MPL/

    37 card.io

    http://developer.android.com/google/play/billing/http://github.com/paypal/PayPal-Android-SDKhttp://developer.paypal.com/webapps/developer/docs/classic/mobile/gs_MPL/http://card.io

  • 43BlackBerry Java Uygulamalar

    BlackBerry Java Uygulamalar

    Ekosistem

    BlackBerry platformu, Kanadal irket Research In Motion (gnmzdeki adyla BlackBerry Ltd.) tarafndan gelitirildi ve 1999'da piyasaya sunuldu. BlackBerry cihazlar, rahat metin girii iin tam klavye ile sunulduu, uzun arj mrne, zgn mobil sosyal a olan BlackBerry Messenger'a (BBM), e-posta ve gl bir anlk bildirim hizmetine (push notification) sahip olduu iin hzl bir ekilde popler hale geldi.

    te yandan son 5 yl iinde birka zel lke pazar dnda (Nijerya, Endonezya ve Gney Afrika), BlackBerry telefonlarnn genel piyasa pay son yllarda srekli olarak geriledi. 2013 ylnn 3. eyreinde BlackBerry cihazlar, kresel akll telefon sevkiyatnn yalnzca %2'sini oluturmaktayd1. Kaybettii pazar payn geri alabilmek iin RIM, 2012 ylnda tamamen yeni bir iletim sistemini tantt: BlackBerry 10 (BB10). 2013 ylndan itibaren de retilen tm yeni cihazlarda BB10'i kullandlar. Bu yeni iletim sistemi hakknda daha fazla bilgi almak iin kitapmzdaki BB10 blmne gz atabilirsiniz.

    Bu blm, 2013 ylndan nce piyasaya srlen ve Java tabanl olan BlackBerry cihazlar iin uygulama gelitirmeye odaklanmtr. Gelecekte aamal olarak kaldrlacak olsa da, BlackBerry Java API, eski BlackBerry cihazlar iin uygulama gelitirmede kullanlan en yaygn yntemdir. Bu yzden bu blm buna odaklanmtr.

    1 bgr.com/2013/10/30/blackberry-market-share-q3-2013/

    BY

    O

    vidi

    u Il

    iesc

    u &

    Mic

    hael

    Koc

    h

    http://bgr.com/2013/10/30/blackberry-market-share-q3-2013/

  • 44BlackBerry Java Uygulamalar 44

    Gerekli Aralar

    lk nce Java SDK'sn2 indirin. Daha sonra Eclipse'e ve Black-Berry eklentisine3 ihtiyacnz olacak. Bunlar ayr ayr ya da son yaynlanan BlackBerry OS iin gerekli olan SDK ve simlatrleri ieren uygun bir paket olarak indirilebilir.

    Kitabmzn bu ksm kaleme alnd srada Java tabanl BlackBerry OS'un son yaynlanan srm 7.1 idi. BlackBerry OS 6 ve daha eski cihazlar iin SDK'lar indirme talimatlar indirme sayfasnda mevcuttur. Ekstra cihaz simlatrleri RIM'in web sayfasnda4 bulunabilir.

    Uygulama paketinizi bir cihaz zerinde test etmek iin BlackBerry Masast Yneticisini5 indirip kurmanz gerekir. Ayrca daha hzl kullanm iin, JDE ile beraber gelen javalo-ader adl arac kullanabilirsiniz.

    Uygulama

    BlackBerry JDE, ksmen JAVA ME ve onun baz popler JSR uzantlarn baz alr. Bu, BlackBerry uygulamalarnn yalnzca Java ME teknolojileri kullanarak oluturulabildii anlamna gelmektedir. Dier bir seenek ise, platformu btnyle kullanmanza frsat veren BlackBerry'nin tescilli uzantlarn ve arayz gelitirme atlarn (framework) kullanmaktr. Her iki API'n da JavaDoc'u online6 mevcuttur.

    2 oracle.com/technetwork/java

    3 us.blackberry.com/developers/javaappdev/javaplugin.jsp

    4 us.blackberry.com/sites/developers/resources/simulators.html

    5 us.blackberry.com/apps-software/desktop/

    6 blackberry.com/developers/docs/7.0.0api/index.html

    http://oracle.com/technetwork/javahttp://us.blackberry.com/developers/javaappdev/javaplugin.jsphttp://us.blackberry.com/sites/developers/resources/simulators.htmlhttp://us.blackberry.com/apps-software/desktop/http://blackberry.com/developers/docs/7.0.0api/index.html

  • 45BlackBerry Java Uygulamalar

    Native UI bileenleri belli bir dereceye kadar biimlendirile-bilir ancak grnmlerini mevcut temadan alrlar. Bu, her bileen iin kod ierisinde Field.applyTheme() methodunu geersiz klarak nlenebilir.

    OpenGL-ES'den ana ekran etkileimi ve kriptografiye kadar BlackBerry API'lar, ilgi uyandran uygulamalar yaratmanz iin ihtiya duyduunuz her eyi size salayacaktr. Resmi BlackBer-ry aralarna ek olarak, uygulamalarnz gelitirmenize frsat veren nc parti uzantlar bulunmaktadr. Bunlar arasnda J2ME Polish7 veya CSS kullanarak kullanc arayznz (UI) tasarlayp canlandrmanz salayan Glaze8 bulunur.

    HizmetlerBlackBerry, reklam, harita, deme ve anlk bildirim (push notification) hizmetleri9 dahil olmak zere uygulamalarnz gelitirmek iin yararl olabilecek birok hizmet sunmaktadr.

    Anlk bildirim (push notification) hizmeti10, temel olarak posta, mesaj ve haber uygulamalarnda kullanldr. Ana faydas, cihaz srekli olarak a yoklamak yerine, an gncel-lemeleri anlk bildirim olarak iletmesini bekler. Bu a trafiini, pil sarfiyatn ve maliyeti azaltr. BlackBerry anlk bildirim hizmetini (push notification) cretsiz ama snrl bir hizmet olarak sunmaktadr; limiti aan sayda anlk bildirim (push notification) gndermek isterseniz cretli altyap hizmetinden faydalanabilirsiniz.

    7 j2mepolish.org

    8 glaze-ui.org

    9 developer.blackberry.com/services/#platform

    10 us.blackberry.com/developers/platform/pushapi.jsp

    http://j2mepolish.orghttp://glaze-ui.orghttp://developer.blackberry.com/services/#platformhttp://us.blackberry.com/developers/platform/pushapi.jsp

  • 46BlackBerry Java Uygulamalar

    Uygulama TamaBlackBerry cihazlar arasnda uygulamalar tamak ok kolaydr nk iletim sistemi (OS), paralanma sorunlarn en aza indirmek iin dikkatle alan tek bir irket tarafndan yaratlmtr. Ancak bu, ortaya kabilecek tm zorluklar ortadan kaldramamaktadr:

    Baz snflar (FilePicker gibi) ve fonksiyonlar yalnzca belirli iletim sistemi (OS) srmlerinde mevcuttur.

    Farkl ekran znrlklerini ve grnm modlarn (enine-boyuna grnm) desteklemeniz gerekir.

    Dokunmatik ve dokunmatik olmayan cihazlar destekl-emeniz ve hedef cihaza gre deien eitli zellikleri (Storm'un fiziksel olarak tklanabilir zel dokunmatik ekran gibi) desteklemeniz gerekebilir.

    Java ME ve Android gibi dier Java platformlarna uygula-malar tamak, BlackBerry UI'sini tamak mmkn olmad iin karmaktr. Platformlar aras tanabilirlik, uygulamanzn Blackberry bileenlerini ve API'larn ne sklkla kullandna gre deiir. rnein, BlackBerry'nin anlk bildirim (push notification) snflarn dier platformlarda kullanmak mmkn deildir.

    Test Sreleri

    BlackBerry, eitli telefonlar iin simlatrler sunmaktadr. BlackBerry'nin hata ayklama ve test aralar, Android ve iOS gibi dier modern platformlarla edeerdir: simlatrler, gelitiricilerin ok eitli olaylar (gelen aramalar, GPS koordinatlarndaki deiiklikler, a durumlarndaki deiiklikler, vb.) cihaz zerinde hata ayklayarak simle etmelerini

  • 47BlackBerry Java Uygulamalar

    salayarak, kodlarn gerek donanmlarda test etmelerini kolaylatrr.

    Buna ek olarak, otomatik test de mmkndr ancak snrl ve karmaktr. Olaylar bilgisayarnzdan aktarmak iin paket FledgeController aracn11 , cihaz (veya simlatr) zerinde alan bir BlackBerry uygulamasndan aktarmak iinse EventInjector class12 kullanabilirsiniz. Bu konu hakknda ok az sayda kaynak olduundan, zerinde bolca dnmeniz ve korsanlk yapmanz gerekebilir.

    mzalama

    Platformun (a veya dosya API'lar) birok ciddi gvenlik snf ve zellii, uygulamann yaynlaycnn tannaca bir ekilde imzalanmasn gerektirmektedir. Bunu yapabilmek iin BlackBerry'den13 bir imza anahtar edinmeniz gerekir. mzalama ilemi, uygulamay paketleyebilen rapc arac kullanlarak yaplr.

    Datm

    BlackBerry'nin kendi datm kanal, uygulamalarnz yaynlayabileceiniz AppWorld'tr14. Paral uygulamalar iin %70 gelir pay alrsnz. Ayrca GetJar da15, BlackBerry

    11 docs.blackberry.com/en/developers/deliverables/15476/Using_the_BBSmrtphnSmltr_programmatically_607582_11.jsp

    12 www.blackberry.com/developers/docs/4.1api/net/rim/device/api/system/EventInjector.html

    13 https://www.blackberry.com/SignedKeys/codesigning.html

    14 appworld.blackberry.com

    15 getjar.com

    http://docs.blackberry.com/en/developers/deliverables/15476/Using_the_BBSmrtphnSmltr_programmatically_607582_11.jsphttp://docs.blackberry.com/en/developers/deliverables/15476/Using_the_BBSmrtphnSmltr_programmatically_607582_11.jsphttp://www.blackberry.com/developers/docs/4.1api/net/rim/device/api/system/EventInjector.htmlhttp://www.blackberry.com/developers/docs/4.1api/net/rim/device/api/system/EventInjector.htmlhttps://www.blackberry.com/SignedKeys/codesigning.htmlhttp://appworld.blackberry.comhttp://getjar.com

  • 48BlackBerry Java Uygulamalar 48BlackBerry Java Uygulamalar

    uygulamalarn yaynlayan bamsz ve popler bir web sitesidir.

    Daha fazla bilgi

    Eer BlackBerry Java gelitiricilii hakknda daha fazla bilgi almak istiyorsanz, aadaki kaynaklar size yardmc olabilir.

    Paketli rnek uygulamalarSDK'lar, mkemmel rnek uygulamalar ile beraber gelmekte-dirler. Bunlar arasnda "Yeni Balayanlar" uygulamalarndan karmak konum belirleme ve okluortam uygulamalarna kadar her ey bulunmaktadr.

  • 49BlackBerry Java Uygulamalar 49BlackBerry Java Uygulamalar

    OnlineMevcut birka nemli online kaynak:

    Resmi BlackBerry belgelendirme sitesi16 BlackBerry gelitirici forumlar17

    nternet'te BlackBerry OS ile ilgili eitli sorunlara ve konu-lara resmi kaynaklardan ok daha iyi ekilde deinen tonlarca bilgi bulunmaktadr. Arama motorlar sizin dostunuzdur!

    KitaplarBlackBerry Java gelitiricilii ile ilgili kitaplar:

    BlackBerry Development Fundamentals18 by John Wargo Beginning BlackBerry 7 Development 2nd Edition by

    Anthony Rizk Advanced BlackBerry 6 Development 2nd Edition by

    Chris King

    16 developer.blackberry.com/java/documentation/

    17 supportforums.blackberry.com/t5/Java-Development/bd-p/java_dev

    18 bbdevfundamentals.com/

    http://developer.blackberry.com/java/documentation/http://supportforums.blackberry.com/t5/Java-Development/bd-p/java_dev

  • 51BlackBerry 10

    BlackBerry 10

    Ekosistem

    BlackBerry 10 platformu (BB10), BlackBerrynin (nceden RIM ismiyle bilinen irket) iddial ve modern bir iletim sistemiyle yeniden piyasaya kn salad. BlackBerry bu k, rakip mobil iletim sistemleri ile ayn seviyeye gelebilmek iin gerekletirdi.

    BB10 cihazlar piyasaya 2013 ylnn ilk eyreinde kmtr. Eski nesil BlackBerry OS telefonlar iin (OS 6 ve 7.x) herhangi bir gncelleme plan bulunmamaktadr. u anda satta be farkl BB10 tabanl telefona ulamak mmkn. Yeni amiral gemisi Z30'dur. Bunun yan sra Z10 ve fiziksel klavyeye sahip Q5, Q10, Q30 bulunmaktadr. Kitapn bu ksm kaleme alnrken, farkl boyut ve biimiyle ne kan BlackBerry Pass-port ve BlackBerry Classic de piyasaya kmaya hazrlanyordu.

    nceki blmde zetlendii gibi, BlackBerry byk bir piyasa basks altndadr. Daha fazla pay kaybetmemek iin BB10'u ok baarl bir hale getirmek zorundalar; bu yzden yeniden piyasaya k yolunda ok daha fazla yatrm yapmalar gerekiyor. Bunun anlam, yeni platform iin uygulama gelitirmek isteyen gelitiriciler iin yeni ve ilgin frsatlar yaratmaktr. letim sistemi tamamen yeni olsa da, g-ml cihazlar iin gerek zamanl bir ekirdee sahip olan bir Unix trevi olan QNX'i temel almaktadr. BlackBerry World isimli maaza veya push hizmeti gibi dier BlackBerry ekosistem

    BY

    M

    arcu

    s Ro

    ss

  • 52BlackBerry 10

    unsurlar deimemitir. Kurulularda BlackBerry iin byk bir kaynak olacak olan unsur, BlackBerry Enterprise Server (BES) isimli mobil ynetim yazlm'dr.

    En yeni BlackBerry SDK aracysa 2014 ylnn ikinci yarsnda duyurulan 10.3 srmdr.

    Gelitirme

    BB10 ile uygulamalar, ok eitli yazlm teknolojileri kullanlarak gelitirilebilir:

    C Native SDK C++ Cascades SDK HTML5 (WebWorks SDK) Adobe Air Android Runtime BlackBerry App Generator

    BlackBerry firmas gelitiricileri yeni platforma ekmek iin bir simlatr, GitHub1 zerinde birok rnek projeler ve srekli olarak gncellenen belgelendirme2 de dahil olmak zere pek ok kaynak sunmaktadr.

    Mevcut Java API'n artk desteklenmemesi sebebiyle BlackBerry zc bir ekilde youn tepkiyle karlat. Bu, daha eski, BB10 olmayan BlackBerry cihazlar iin kod yazan Java gelitiricilerinin yukarda belirtilen teknolojileri yeniden renmeleri anlamna geliyordu. Gelitiricilerin tm bunu yapmak istemedii iin birok gelitiricinin "gemiyi terk edip" rakip platformlar iin alaca konusunda endie

    1 github.com/blackberry

    2 developer.blackberry.com/platforms/bb10

    http://github.com/blackberryhttp://developer.blackberry.com/platforms/bb10

  • 53BlackBerry 10

    bulunmaktayd. te yandan, mevcut nesil uygulamalar iin herhangi bir gei yolu olmadndan gelitiricilerin yeni platform iin bunlar yeniden yazmalar gerekmekteydi. Yeni BB10 platformu gerek zamanl gml bir iletim sistemi olan QNX3i temel ald iin bu gerekliydi. Dier taraftan, yeni platform kendi uygulamalarn kolaylkla tayabilecek olan web gelitiricileri ve zellikle Android gelitiricileri iin yeni frsatlar sunmaktadr.

    C Native SDKBlackBerry Native SDK, gelitiricilerin kendi mevcut uygulamalarn platforma sunabilmeleri iin bir ok ak standard desteklemektedir. Balang olarak bir Native Dev Site4 bulunmaktadr. Native SDK ile kodunuzu yazmak, uygulamanzn donanmnza en yakn ekilde olmasn salar. BlackBerry 10 native SDKs, BlackBerry 10 OS altnda alan programlar gelitirmek iin ihtiya duyacanz her eyi iermektedir: bir derleyici, balayc, ktphaneler ve geni bir Entegre Gelitirme Ortam (IDE). Windows, Mac ve Linux iin mevcuttur.

    Temel gelitirme admlar unlardr:

    Bir imza hesab ve anahtar talebi Native SDK'nn5 kurulumu Simulator'n6 kurulumu ve yaplandrlmas Gelitirme ve kullanm iin ortamnzn yaplandrlmas lk projenizin oluturulmas rnek uygulamalarn altrlmas

    3 www.qnx.com

    4 developer.blackberry.com/native/beta

    5 developer.blackberry.com/native/download

    6 developer.blackberry.com/native/download

    http://www.qnx.comhttp://developer.blackberry.com/native/betahttp://developer.blackberry.com/native/downloadhttp://developer.blackberry.com/native/download

  • 54BlackBerry 10

    Yeni bir zellik olarak BlackBerry, NDK desteine Scoreloop'u7 eklemitir. Scoreloop, mobil sosyal oyunlar mmkn klan bir teknolojidir. Gelitiricilerin kendi oyunlarna sosyal zellikleri ekleyebilmelerini salar ve oyunun kendine has grnmn ve hissini korur. u anda mevcut olan zel-liklerden bazlar unlardr:

    Kullanc profili Skor tahtas Meydan okumalar dller ve baarlar

    C++ Cascades SDKC++ ve Cascades ile gelitirmek baka bir seenektir. Cascades, gelitiricilerin kolay UI uyarlamas iin gl bir destee sahip bir BlackBerry native uygulamasn ina etmelerine frsat vermek iin tasarlanmtr. Cascades erevesi, uygu-lama mantn kullanc arayz oluturma motorundan ayrmaktadr. Bir uygulama ierisinde belirtilen kullanc arayz kontrolleri, bunlarn zellikleri ve davranlar, QML8 ad verilen bir iaretleme dili ierisinde tanmlanmtr. Uygulamanz altnda, UI oluturma motoru kullanc arayz kontrollerini grntler ve belirlenmi olan herhangi bir geii veya efekti uygular. Cascades SDK aadaki zel-likleri sunmaktadr:

    Cascades UI'si ve platform API'lar

    7 developer.blackberry.com/native/documentation/bb10/com.qnx.doc.scoreloop.lib_ref/topic/overview.html

    8 en.wikipedia.org/wiki/QML

    http://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.scoreloop.lib_ref/topic/overview.htmlhttp://developer.blackberry.com/native/documentation/bb10/com.qnx.doc.scoreloop.lib_ref/topic/overview.htmlhttp://en.wikipedia.org/wiki/QML

  • 55BlackBerry 10

    UInizi C++, Qt Modelleme Dili (QML) veya her ikisi ierisinde gelitirmek iin aralar

    Temel UI kontrollerinin avantajlarn kullanmak ve yeni kontroller yaratmak

    Mobil ve Wi-Fi alar zerinde iletiim Medya dosyalarnn kayd ve oynatlmas Verilerin depolanmas ve alnmas Sertifika ynetimi ve kriptografi aralar

    Cascades uygulama gelitirme erevesi, Qt arayz gelitirme teknolojileri kullanlarak ina edilmitir. Bu mimari yap Cascadesin Qt nesne modelini, olay modelini ve sarma modelini glendirmesine frsat vermektedir. Qt ierisindeki yuva ve sinyal mekanizmas, gl ve esnek nesneler aras bir iletiime olanak tanr. Cascades erevesi, temel Qt snflarn (Qtcore, QtNetwork, QtXml ve QtSql ve dierleri) kullanr ve bunlar temel alr. Bu da, gelitirilen eitli unsurlar programlamak yerine bunlar tanmlamalarn salar; baka bir deyile, bir animasyonu programlamak yerine onun sresini ve tipini tanmlamalar yeterli olacaktr. Bu yaklam, Core Animation ile iOS'taki ileyie benzerdir. JSON benzeri biimlendirmesi sebebiyle QML, tecrbeli JavaScript gelitiricileri tarafndan bile yazlabilir.

    Gelitiricilere bu yeni UI inas yaklamnda yardmc olmak amacyla, Cascades Builder isimli bir ara bulunmaktadr. QNX Momentics IDE'sinedahil edilmitir ve gelitiricilerin grsel bir arayz kullanarak bir UI tasarlayabilmelerine frsat verir. Bir kod zerinde deiiklik yaptnzda, bunun etkilerini tasarm grnmnde hemen grebilirsiniz. Gelitiricinin herhangi bir kontrol programlamasna gerek yoktur, basit bir ekilde ta ve brak yaklamn kullanabilir.

  • 56BlackBerry 10

    Eer bir tasarmcysanz, Cascades Exporter9 sizin iin ideal-dir. Bu Adobe Photoshop eklentisi, resimlerinizi blp yeniden boyutlandrr ve bir tmz dosyasna paketler (sktrlm, blnm ve metadata destekli resim kaynaklar). Bu kaynak dosyalar, QNX Momentics IDE'si ile bir gelitirici tarafndan kolaylkla kullanlabilir.

    Daha fazla bilgi iin bir Cascades Dev Sitesi10 mevcuttur.

    HTML5 WebWorksEer bir Web/JavaScript gelitiriciyseniz, mevcut becerile-rinizi BlackBerry uygulamalar yazmak iin kullanabilirsiniz. Kullanabileceiniz iki nemli ara bulunmaktadr:

    Bunlardan ilki WebWorks SDK11. Dier zelliklerinin yan sra, normal web sayfalarn yazmanza ve bunlar kolaylkla native BlackBerry uygulamalar olarak paketleyebilmenize frsat verir. Webworks'n yeni 2.0 srm, PhoneGap olarak da bilinen Apache Cordova yazlm gelitirme erevesine sk bir ekilde uymaktadr. BlackBerry, btn webworks-apis'leri apraz platform Cordova arac eklentileri olarak yaynlamtr. Eer HTML ierisinde BlackBerry-UI stilini taklit etmek istiyorsanz, GitHub ierisinde size yardmc olabilecek bir proje bulunur. Bunun ad BBUi.jsdir12 ve normal web sayfalarnz native BlackBerry-UI uygulamas olarak grnecek ekle sokabilmek iin kapsaml bir CSS sunar. Bu yaklam iin HTML'i gelitirmek amacyla eitli veri zelliklerini kullanrsnz. Bbui.jsye alternatif olarak, BB10 temasna sahip jQueryMobile iin destek

    9 developer.blackberry.com/cascades/documentation/design/cascades_exporter

    10 developer.blackberry.com/cascades

    11 developer.blackberry.com/html5/download/sdk

    12 github.com/blackberry/bbUI.js

    http://developer.blackberry.com/cascades/documentation/design/cascades_exporterhttp://developer.blackberry.com/cascades/documentation/design/cascades_exporterhttp://developer.blackberry.com/cascadeshttp://developer.blackberry.com/html5/download/sdkhttp://github.com/blackberry/bbUI.js

  • 57BlackBerry 10

    de bulunmaktadr. SenchaTouch erevesi de13 ayrca BB10'u desteklemektedir.

    kinci ara ise Ripple Emulator'dr14. WebWorks uygulamalar iin bir BB10 cihaz simlatr grevi gren bu emlatr, bir Chrome taraycs uzantsdr. vmeler ve GPS sensr gibi donanma zel eitli unsurlar taklit etmektedir. Komut satrn kullanmadan bile uygulamanz paketleyip kullanmanz salar.

    BlackBerry 10 iletim sisteminin donanm hzlandrmasna sahip WebGL destei sunduunu bilmek yararl olabilir ve dhili bir zellik olan WebInspector vastasyla mobil cihaz zerinde hata ayklama ve profilleme ilemlerini gerekletirebilirsiniz.

    13 www.sencha.com/products/touch

    14 developer.blackberry.com/html5/download/ripple

    http://www.sencha.com/products/touchhttp://developer.blackberry.com/html5/download/ripple

  • 58BlackBerry 10

    WebWorks ile gelitirme hakknda daha fazla bilgi almak iin HTML5 Dev mikro sitesi15 bulunmaktadr.

    Adobe AirEer bir Adobe AIR gelitiricisiyseniz, yeni bir datm kanal olarak BB10'u ekleyebilirsiniz. BlackBerry cihazlar iin uygulamalar yaratmak amacyla Adobe AIR iin BlackBerry 10 SDK'y kullanacaksnz.

    BlackBerry uygulamalarn yaratmak/tamak iin Adobe ActionScript ve Adobe Flex APIlar olan SDKy kullanabilir-siniz. Bu APIlar benzersiz eitli UI bileenleri ve nceden belirlenmi grnmlerin yan sra, BlackBerry cihazlarna zel olaylar iin dinleyiciler sunmaktadr. Adobe Flash Builder API'larnn kullanm ile uygulamanz ayrca, ivme ler ve konum belirleme bilgileri gibi mobil cihazlara zel uygulama-lara eriim salayabilir.

    Adobe AIR uygulamanz gelitirmeye balamak iin:

    Windows iin VMware Player veya Mac iin WMware Fusion indirin ve kurun

    BlackBerry 10 simlatrn indirin Adobe AIR iin BlackBerry 10 SDK'y indirin Adobe Flash Builder, Powerflasher FDT veya komut satr

    aralaryla gelitirmeye balayn

    Daha fazla bilgi iin zel web sitesini16 ziyaret edin.

    15 developer.blackberry.com/html5

    16 developer.blackberry.com/air/

    http://developer.blackberry.com/html5http://developer.blackberry.com/air/

  • 59BlackBerry 10

    Android RuntimeBlackBerry 10.2.1 ve zeri srmlerde Android Jelly Bean 4.2.2 platform uygulamalarn altrmak amacyla Android uygulamalar iin BlackBerry Runtime' kullanabilirsiniz. Runtime' kullanmak iin Android uygulamalarnz BAR dosyas biiminde yeniden paketlemeniz gerekmektedir.

    Bir gelitirici olarak, uygulamanz yeniden paketlemek iin aadaki aralara ihtiyacnz olacaktr. Bu aralar ayrca, An-droid SDK'sndaki baz APIlar desteklenemeyecei veya ksmen yalnzca BlackBerry platformlar zerinde olabilecei iin uygulamanzn BlackBerry 10 zerinde alma uyumluluunu kontrol edecektir.

    Eclipse iin eklentinin yeniden paketlenmesiBu aracn temel avantaj, Eclipse'den ayrlmadan BlackBerry

    PlayBook, BlackBerry Tablet Simulator, BlackBerry 10 Dev Alpha Simulator ve BlackBerry 10 cihazlar zerinde uygulamalarn uyumluluunu, yeniden paketlemesini kontrol etmek, hata ayklama ve altrma becerisidir. Ayrca bu eklentiyi, uygulamanz datlmadan imzalamak iin kullanabilirsiniz. Eer uygulamanz imzalamadan test etmek istiyorsanz, hedef cihaz veya simulator zerinde bir hata ayklama belirteci yaratmak ve kurmak iin eklentiyi kullanabilirsiniz.

  • 60BlackBerry 10

    evrimii paketleyiciAndroid uygulamalar iin BlackBerry paketleyicisinin temel

    avantaj, yalnzca taraycnz kullanarak Android uygulamanz hzl bir ekilde yeniden paketleyebilmek iin kullanabil-menizdir. Uygulamay, uyumluluk asndan test edebilir, BlackBerry Tablet OS veya BlackBerry 10 uyumlu BAR dosyas olarak yeniden paketleyebilir ve daha sonra BlackBerry World maazas zerinden datlabilmesi iin imzalayabilirsiniz.

    Komut satr yeniden paketleme aralarAndroid uygulamalar iin BlackBerry SDK'snn temel

    avantajlarndan bir tanesi bunu, APK dosyas formatndan BAR dosyas formatna kadar eitli Android uygulamalarn yeniden paketleyebilmek iin kullanabilmenizdir. Ayrca, Android uygulamalarnzn uyumluluunu kontrol etmek, uygulamalar imzalamak, hata ayklama belirteleri yaratmak ve gelitirici sertifikalarn oluturmak iin satr komutu aralarn kul-lanabilirsiniz.

    Eer BB10 zerinde Android uygulamalarn kullanmaya ilikin daha fazla bilgi almak istiyorsanz, ltfen zel web sitesini17 ziyaret edin.

    BlackBerry App GeneratorEer bir gelitirici deilseniz, BlackBerry BlackBerry App Generator18 ile BB10 iin basit bir uygulama yaratma arac sunmaktadr. Bu ara;

    17 developer.blackberry.com/android

    18 blackberryappgenerator.com/blackberry/

    http://developer.blackberry.com/androidhttp://blackberryappgenerator.com/blackberry/

  • 61BlackBerry 10

    Web sayfas, RSS beslemeleri Tumbler Facebook YouTube flickr

    ve daha fazlas gibi eitli girdi kaynaklarn temel alan uygulamalar oluturabilmenizi salar. Bir logo ve renk seimine sahip olacak ekilde zelletirilebilen ayrntl bir uygulama yaratr. Basit bir haber uygulamas iin bu yaklam tamamen yeterlidir ancak "CNN" benzeri bir aheser yaratmay bekl-emeyin.

    Test Sreleri

    BlackBerry, ayr bir indirme19 seenei olarak BB10 telefonlar iin bir simlatr sunmaya devam etmektedir. Bu simlatr, uygulamanz gerek bir BlackBerry cihaznda altrma ynteminize benzer ekilde bir PC/Mac/Linux zerinde altrabilmenize frsat vermektedir. Teste yardmc olmas iin simlatr, controller ismindeki kk bir uygulama ile gelme-ktedir. Bu ara, arj seviyesi, GPS konumu, NFC veya cihazn yatrlmas gibi ayarlar simle etmenize frsat verir. Bylece uygulamanzn gerek durumlarda nasl alacanz nceden grebilirsiniz.

    19 developer.blackberry.com/devzone/develop/simulator/

    http://developer.blackberry.com/devzone/develop/simulator/

  • 62BlackBerry 10

    mzalama

    Platformun gvenlik asndan nemli birok snf ve zellii (a oluturma veya dosya APIleri gibi), datmcnn belirlene-bilmesi iin uygulamann imzalanmasn gerektirmektedir. BlackBerry iin bir uygulama gelitirme ilemindeki bir son adm genellikle sancl bir durumdur.

    Eer imzalanmam uygulamanz fiziksel bir cihaz zerinde test etmek istiyorsanz, hata ayklama belirteci isimli bir dosyay talep etmeniz gerekmektedir. Bu belirte, belli bir BB10 cihaznn imzalanmam uygulamalar altrmasna izin verir. Bu kurulum prosedr iin BlackBerry Anahtar Sipari Formu20 zerinden bir imzalama dosyas (client-PBDT-xxxxx.csj) talep etmeniz gerekir. E-posta araclyla dosyay aldktan sonra, komut satr aralaryla bir hata ayklama belirtecini ykleyebilirsiniz. Bu kurulumdan sonra cihaznzda imzalanmam uygulamalar altrabilirsiniz. Bu ilemin her bir cihaz iin ayrca yaplmas gerektiini unutmayn.

    Eer uygulamanz BlackBerry World'de yaynlamak istiyorsanz, BlackBerry Anahtar Sipari Formu21 zerinden sipari verilmi olan bir imzalama anahtarna da gerek duyacaksnz. Bu kurulum srecinde size yardmc olmak iin BlackBerry, ilemi adm adm anlatan bir web sayfas22 sunmaktadr.

    20 www.blackberry.com/SignedKeys/codesigning.html

    21 www.blackberry.com/SignedKeys/codesigning.html

    22 developer.blackberry.com/CodeSigningHelp/codesignhelp.html

    http://www.blackberry.com/SignedKeys/codesigning.htmlhttp://www.blackberry.com/SignedKeys/codesigning.htmlhttp://developer.blackberry.com/CodeSigningHelp/codesignhelp.html

  • 63BlackBerry 10

    Datm

    nceki btn iletim sistemi srmlerinde olduu gibi BB10 uygulamalar BlackBerry World23 zerinden datlmaktadr. Gerekli satc hesab, Vendor Portal for BlackBerry World24 adresinden oluturulabilir.

    cretli uygulamalar iin gelitiriciler, gelir paynn %70ini almaktadrlar.

    kinci seenek ise Kurumsal Uygulama Datm yntemidir. Bu, herhangi bir kullanc iin datma sunmak yerine organizasyon ya da firmanz ierisinde bir dhili uygulamay kullanmanza olanak salar. Bu yntem, B2B uygulamalar iin son derece uygundur.

    Kurumsal Uygulama Datm hakknda daha fazla bilgi almak iin, web sitesini25 ziyaret edebilirsiniz.

    23 appworld.blackberry.com

    24 appworld.blackberry.com/isvportal

    25 developer.blackberry.com/distribute/enterprise_application_distribution.html

    http://appworld.blackberry.comhttp://appworld.blackberry.com/isvportalhttp://developer.blackberry.com/distribute/enterprise_application_distribution.htmlhttp://developer.blackberry.com/distribute/enterprise_application_distribution.html

  • 65Firefox OS

    Firefox OS

    Ekosistem

    Baka bir mobil iletim sistemine ihtiyacmz var m? Mozilla Foundation ihtiyacmz olduunu dnd ve daha dk fiyatl akll telefonlar hedefleyen, Linux tabanl ak kaynakl bir iletim sistemi olan Firefox OS'yi1 gelitirdi. En bandan beri gncellemeler iin ortaya konulan srm dngleri fazla iddialyd: ubat 2013'teki 1.0 srmnn kndan sonra srm 1.1 Ekim aynda, 1.2 de ayn yln Aralk aynda piyasaya kartld.

    Kitle piyasas iin kartlan ilk Firefox OS cihaz, 80