iPad’de Coda ile kodlamak

iPad’de kod yazmak kulağa ne kadar garip gelse de bazı alanlarda oldukça konforlu bir şekilde yapılabilir durumda. Geçtiğimiz yıl 4 aylık bir süre sadece iPad ile bilgisayarsız çalışma deneyi yaptım ve bu süreçte çok aktif olmasa da bir süre kod yazmam gerekti. Tahmin edeceğiniz üzere çoğunlukla back-end ve web tabanlı şeyler yazmam gerekti ancak arada sırada Python ve biraz mobil koda (Swift, Java) dokunmam gerekti.

Bu süreçte çoğunlukla “Coda” adında bir uygulama kullandım ve bu yazıda biraz Coda’daki deneyimimi özetleyeceğim. Okumaya devam et “iPad’de Coda ile kodlamak”

Swift öğrenmek isteyenlere…

Mobil uygulama geliştirmeye meraklıysanız ve iOS uygulama geliştirmeye başlamak için çok güzel bir kaynakla karşılaştım geçenlerde. Örnek kodları da github’dan indirebileceğiniz, hem video hem yazılı okuyabileceğiniz bir kaynak:

Dersler:
https://swifteducation.github.io/teaching_app_development_with_swift/

iTunesU’dan mobil cihazınızdan dersleri takip edebileceğiniz:
https://itunes.apple.com/us/course/app-development-teaching-swift/id1003406963

Örnek projelerı de bulabileceğiniz kaynak kodları:
https://github.com/swifteducation

iOS’de otomatik yenilenen abonelikleri doğrulamak

Baştan belirtmek zorundayım, iOS uygulamalarına otomatik yenilenen abonelikleri entegre etmek tam bir baş ağrısı. Her ödeme yönetminin zor yanları olabilir, ancak iOS uygulama mağazası üstünden yapılan otomatik tekrar eden abonelikleri yönetmek çok daha karışık bir mevzu.

Baştan başlamak gerekirse, otomatik ödeme yönetime ile yapılan abonelikler diğer tür ödemelerden farklı. “iOS uygulama içi satış entegrasyonu ve ödemeleri doğrulamak” yazısında iOS uygulama mağazası ödemelerini entegre etmek ve ödeme türleri üzerine bir yazı yazmıştım. Otomatik tekrar eden abonelik dışındaki diğer ödeme türlerinin entegresyonunu o yazıdan inceleyebilirsiniz. Ancak bu konuda bilginiz yoksa önce o yazıdaki bilgilere ihtiyacınız olacak, önce o yazıyı incelemenizi tavsiye ederim.

Otomatik tekrar eden abonelikler sayesinde, kullanıcınızın iznini aldıktan sonra iTunes aracılığıyla, 1 haftalık, 1 aylık, 2, 3, 6 veya 12 aylık periyodlarla otomatik şekilde ödemelerini sağlayabiliyorsunuz. Bir ürün için kullanıcıyı elde tutmak açısından diğer, tek seferlik satın almalardan çok daha değerli. Kullanıcınız ödemeyi ilk sefer yaparken satın almayı yapıyor ve sonrasında servisi iTunes üstünden iptal edilene kadar ödemeler otomatik tekrarlanıyor. Siz kazancınızı Apple’dan alıyorsunuz.

Okumaya devam et “iOS’de otomatik yenilenen abonelikleri doğrulamak”

iOS uygulama içi satış entegrasyonu ve ödemeleri doğrulamak

iOS uygulaması geliştirmek bu günlerde oldukça popüler. Turkiye’de de birçok oyun geliştiricisi iOS platformlara yönelmeye başladı.

Uygulamanızda geliştireceğiniz gelir modeliniz bir şekilde Apple ödeme sistemine bağlanmak zorunda çünkü Apple uygulama geliştirici kontratınıza göre uygulama üzerinde yapacağınız herhangi bir satış modelini Apple ödeme sistemi üzerinden yapmak durumundasınız. Apple uygualama içi ödeme sistemini kullanmanın avantajları ve dezavantajları var.

En büyük dezavantajı her ödemede, Apple’a 30% vermek. Bunun dışında ödemeleri doğrulamanın teknik zorlukları da var. Bunun dışında avantajları, dezavantajlarını unutturacak kadar değerli. Çünkü iOS üstünden yapılacak bir alışverişte herhangi bir ödeme bilgisi sorgusu olmayacak, kullanıcılar ödeme bilgilerini zaten sistemde tanıtmış durumda. Yani bir ödeme kabul edebilmek aslında sadece bir onaylama kutusuna indirgeniyor. Çoğu durumda tek onay sorusuna cevap vermek ve Apple kimlik şifresini doğrulamakla ödeme sağlanabiliyor.

Bir diğer avantaj da, herhangi bir ödeme yönetim sistemi, banka vs gibi bir entegrasyonla uğraşmak durumunda olmamanız.

Şimdi gelelim entegrasyona, iOS geliştirici (objective-c) tarafında gerekli entegrasyonu StoreKit denilen bir Apple arabirimi ile iOS uygulamanıza yapmanız gerekiyor. Bazi amatör programcılar veya sunucu bağımsız uygulama yazmaya çalışan geliştiriciler ya gözden kaçırıyorlar ya da gerek görmüyorlar ama aslında StoreKit’den aldığınız tüm fatura kopyalarını (receipts) Apple sunucularına göndererek doğrulamanız gerekiyor.
Okumaya devam et “iOS uygulama içi satış entegrasyonu ve ödemeleri doğrulamak”

iOS uygulamanızı web sayfanızda AppStore çubuğu ile erişilebilir hale getirin

Eğer bir iOS mobil uygulamanız var ise web sayfanıza ekleyeceğiniz basit bir meta etiketi ile uygulamanızı sayfanıza bağlayabilir ve kullanıcılarınız mobil sayfari ile sayfanızı görüntülüyorsa AppStore banner’ı ile uygulamanıza daha kolay erişim sağlayabilirsiniz.

Görsel şekilde müdahale edemeyeceğiniz bu bannerı basit bir meta etiketi ile oluşturmak mümkün.

[code=html][/code]

iTunesConnect’den edineceğiniz nümerik uygulama kimliğini your_app_id ile değiştirerek sitenizin anasayfasına ekleyebilirsiniz. Gerisini safari hallediyor.

Ayrıca iPad gibi geniş ekranda görüntülendiğinde ayrıca uygulamanızın ekran görüntülerinin bir setini bu bar içinde görebiliyor kullanıcılarınız.

iOS icin gelistirilen uygulamayi test etmek

Son 4-5 aydir moonit’de moonit’in iphone uygulamasini gelistirmeye calisiyoruz. Web’deki seyler rutin bir sekilde devam ediyor zaten fakat su an genellikle xcode’da calisiyor ve genellikle iphone, ipad gibi cihazlar ustunde testler yapiyorum. Daha once de masaustu veya mobil cihazlar icin uygulama gelistirmisligim var fakat uzun suredir boyle bir gelistirme ortamindan uzaktim. Ozellikle de objective-c gibi statik bir dilden ve apple gibi herseyi low level tutan bir sirketin frameworku/gelistirme ortami ile calismanin web’deki esnek ve hareket edilebilirligin bir yandan programciyi tembellestirdigi, bir yandan da amatorlestirdigini farketmemi sagladi. Her ne kadar yaptiginiz seyi profesyonel yaparsaniz yapin calistiginiz ortam sizi bazi seylere zorlamiyorsa bu kacinilmaz.

Neyse bu yazida bahsetmek istedigim sey web ile iOS gelistirme ortami arasinda test sureci, uygulamaniza bir tester daha dahil etmenin farklarini anlatmak. Web ornegini hepimiz biliyoruz, yine de hizlica ozetliyorum. Bir web uygulamasini gelistirirken eger php gibi bir ortamda calisiyorsaniz zaten uygulamanizi derleme, proje olarak butun halde degerlendirme gibi bir durum soz konusu olmayacaktir, bunun olmamasindan dolayi bircok gelistirici ftp’den sunucularindaki calisan uygulamayi anlik olarak duzenleyip gelistirebiliyorlar, hatta bu bazen kotu bir aliskanlik olarak gelistiricilerin eline yapismis bile olabiliyor. Bir web uygulamasi calisirken guncellenip hatalarin giderilmis olmasi veya degisikliklerin uygulanmasi sadece tester/kullanici’nin ziyaretine kaliyor. Hatta sunucu/domain konfigurasyonunuza gore uygulamanizi daha ilk satirdan itibaren public bir yerde online hale getirip insanlardan test etmelerini isteyebiliyorsunuz. Ne kadar esnek ve guzel degil mi?

Iste bu surec iOS uygulama gelisiminde cok farkli bir perspektifte. Aslinda ben bi sureci, bir masaustu uygulamasi gelistirmeyle esdeger goruyorum. Iphone veya ipad’e uygulama yaziyorsaniz yazdiginiz uygulamayi bir kere app store’a submit ettiginizde onaylandiktan sonra mudahala edemediginiz bir seye donusuyor. Tabi ki update’ler cikarip yeni surumler yayinlayabilirsiniz fakat artik oyle bir konumdasiniz ki her surumu kullanan bir kullanici kitlesiyle karsi karsiyasiniz. Web uygulamasinda boyle bir sey yoktur, uygulamanizi guncellediginizde herkes guncel surume erisir. Farkli surumlerle basa cikma disinda eger bir hata gorurseniz bu hatayi duzeltmek icin yeni surum yayinlamaniz, bu yeni surumu tekrar onay prosedurunden gecirmeli ve kullanicilarin cihazlarini guncellemelerini beklemelisiniz. Dolayisiyla bir hatayi veya gelistirmeyi yayina almak aynen bir dergi cikariyor gibi zahmetli oldugu gibi riskli de. Bu riskten dolayi uygulamanizi yayina almadan once cok iyi ve defalarca test etmeniz gerekiyor. Butun bunlarin yaninda web gibi kucuk parcalara ayirip her gelistirmeden sonra deploy etme aliskanliginizi birakmaniz gerekiyor. Cunku artik o kadar hizli update olabilen ve/veya update edince o problemden kurtuldugunuz bir uygulamaniz yok.

Boyle bir dezavantaji dusundugunuzde cok surum cikarmak yerine az surum cok degisiklik/duzenleme yapmayi tercih etmeye basliyorsunuz. Bunlarin arasinda en onemlisi ilk surum tabi ki. Cunku artik public bir directory’ye kaydoluyorsunuz ve aninda bircok insan uygulamanizi indirmeye/kullanmaya basliyor. Dolayisiyla ilk cikisi saglam ve stabil bir uygulama ile yapmak zorundasiniz.

Bu da test surecini ne kadar dogru yapabildiginizle ilgili. Tabi ki apple’in gelistirici sinirlamalari uygulamanizi kucuk de olsa bir alpha test grubuna dagitmanizi cok engelliyor. Bu konuda birkac arac kullaniyoruz moonit’de. ios uygulamalarinin test grubuna dagitimi ve o test grubuna spesifik cihazlara yuklenebilirligini saglamak icin TestFlight diye bir servisi kullaniyoruz. Servisin yaptigi sey test grubundaki insanlarin cihazlarini bu servise kaydetmesi, sonrasinda da gelistiricinin bu kisileri test grubuna dahil etmesinin ardindan test icin derlenmis uygulama surumlerini bu gruba dagitmak.

Bunun disinda uygulamaniza checkpoint’ler koyup her checkpoint’de tester’dan feedback isteyebiliyorsunuz. TestFlight da size bunlari istatistik ve veri olarak sunuyor.

Eger iOS uygulamasi gelistiren birisiyseniz veya bir iOS gelistirici takiminin parcasiysaniz TestFlight bircok isi kolaylastiracaktir.

Google Music icin iOS web uygulamasi yayinladi

Google gecen gunlerde music servisinin iOS tarayici uygulamasini yayinladi. Beni sasirtan sey yillardir insanlar native uygulama mi yoksa web app mi diye mobil sunumlarini doldurup durdular, hatta ben de hatirliyorum bunu yaptigimi defalarca. Sonunda herkes native uygulamanin avantajini soyleyip durup tarayici uygulamalarini yerlere vuruyorlardi. Google gmail vs gibi bircok tarayici uygulamasindaki basarisini burada da gostermise benziyor. Ilk denememde ilk merak ettigim tarayici kapandiginda da calismaya devam edip etmemesiydi, tabi ki devam ediyormus. Diger sey ise iphone veya ipad’den cihazdaki kontrollerle tarayicidaki kontrolleri yonetebilmekti. Bunun anlami iphoneu kapatsam bile kulakliktaki tuslarla kontrol edebilecegimdi. Son olan sey ise airplay ile muzigi televizyona daha dogrusu apple tv bagli ses sistemine yayin yapabilmekti ve burada gercekten sok oldum. Sonuc olarak google ios tarayici uygulamalari konusunda asfalti aglatmis biraz.

Denemek icin sahip oldugunz google hesabinizla iOS cihazinizda safariden music.google.com adresine girmeniz yeterli.

Tabi ki native bir uygulamanin yerini tutmaz ve en kisa zamanda ios uygulamasini gorecegimizi dusunuyorum google music sevrisi icin. Google music’de gordugum tek eksik sosyal bir yaninin olmamasi. Su an ortaya cikan servislerin sosyal networklere bagli olmamasi gibi bir secenegi olmadigini dusunuyorum artik. Umarim google bu sosyal aglari sallamama tavrini yeni servislerinde de devam ettirmez. En azindan google+ entegrasyonu yapmalari viralite icin servisin kaderini etkileyecek bir unsur bana gore.

Surada tech crunc’daki habere ait google music ekran goruntulerini gorebilirsiniz.

Kaynak: http://goo.gl/I09yh

Jailbreak Apple TV ile neler yapiyorum

Birkac ay once buyuk bir led tv almistim, tabi televizyon seyretmeyi seven biri olmadigim icin hicbir kablo tv servisinden televizyon servisi almadim, dolayisiyla tv alma sebebim playstation, stream icerik servisleri idi.

Uzun suredir netflix kullaniyordum ve buna bir de apple tv ile itunes icerigi de eklendi. Tabi netflixi hem playstationdan hem de apple tvden normal olarak izleyebiliyordum. Fakat apple tv almadaki amacim apple tv’yi kirip wireless ustunden time capsule’e ulasip oradaki filmleri izleyebilmekti.

Cunku her ne kadar film indirme aliskanligini kessem de sagdan soldan bir sekilde avi, mkv formatlarinda film veya baska icerikler (belgesel, tv showlari vs) var disklerimde. Bu icerikleri apple urunlerinde izlemek tamamen bas agrisi. Dolayisiyla bir sekilde bunlari apple cihazlarindan izlemenin bir yolu olmaliydi.

iPad ve iPhone’da VLC player ile rahatlikla bunlari izleyebiliyorsunuz, tabi sistem kaynaklari yettigi yere kadar. Yani teoride 1080p videolari bile oynatsa da ram, grafik islemci gibi seyler yetmedigi zaman yetmiyor, yapacak birsey yok.

Ancak cogunluk dosyalarin standart dvd ve 720p oldugunu dusunursek 1080’leri de bilgisayardan izlemek cok da problem degil.

Sonuc olarak Turkiyedeyken bir arkadasimin cok basarili sekilde apple tv’yi kirip tum icerigine XMBC ile eristigini gormustum, apple tv aldiktan sonraki ilk is bilgisayar baglantisi icin micro usb kablosunu siparis etmekti, hizli bir sekilde alip hic sorunsuz apple tv’yi kirdim. Tabi darwin oldugu icin klasik bsd debian karisimi bir isletim sistemine ssh ile baglaniyorsunuz temelde. Gordugum seyi kurarak neler yapabilecegimi test ettim ve su an apple tv’mde bir medya cihazindan bekledigim nredeyse herseyi yapabiliyorum.

Bu apple tv kirma isini illegal bir aktivite olarak gormuyorum cunku hala en cok netflix ve itunes icerigini izliyorum ve bunun icin para oduyorum, sadece elimde olan disklere ulasip dosya formatlarini cevirmek zorunda kalmadan dosyalarima ulasabiliyorum.