27 Şubat 2016 Cumartesi

WWDC 2015 - Apple Push Bildirimlerinde Büyük Değişim!

            Bu yıl yapılan WWDC ‘de şu anda uygulamalarda push notifikasyon kullanan herkesin büyük değişimlerden etkileneceği duyuruldu. Yapılan bir çok WWDC duyurularının aksine, bu değişimler her iOS ve OSX sürümlerini (iOS 9 ve OSX El Capitan dışında) etkileyecek.

Duyurulan ve yapılması planlanan 3 büyük değişim ise şöyle:

1.     Push bildirim eylemleri
2.      APNS token uzunlukları
3.     API

İsterseniz her birini teker teker birlikte inceleyelim.

Metin Giriş Eylemi (Test Input Action)

            Geçen senelerde Apple bize gelen bildirimleri daha hızlı ve kolay bir şekilde cevaplandırabileceğimizden bahsetmişti. Şimdiye kadar, Messages.app ‘ın ilave servislere erişimi mevcuttu fakat tam anlamıyla kullanıcılara sunulmamıştı. Şöyle ki, vermek istediğiniz cevabı bir paragrafa alınmış şekilde ya da emojilerle kısıtlı bir şekilde verebiliyordunuz. Nihayet iOS 9 ‘a giriş ile birlikte her hangi bir uygulama artık “TextInput Action” yani yazı giriş eylemi kullanabilir duruma geldi.





            watchOS 2 ‘de de bu durum Mesajlar kısmında incelendiği üzere düzeltilmeye çalışılmış ve giriş eylemi üzerinde durulmuş.

            Şunu da eklemekte fayda var, yazının başında bahsettiğimiz gibi bu sadece iOS 9 yeniliğidir ve eğer uygulamanız iOS 8 ‘i destekliyor ise bunu kontrol etmelisiniz. 

APNS Token Git Gide Büyüyor

            Bir cihaz token'i (iOS ve Mac cihazları için tanımlanan ve push bildirimleri destekleyen) 32 karakterli hexadecimal dizidir. WWDC 2015’te Apple — APNS’i nasıl kullanılırız adlı tarih dersinin yarısında gömülmüş olarak — çok lanse etmeden bir duyuru yapmış ve cihaz tokenlerinin önümüzdeki sene 32 byte’tan 100 byte’a çıkarılacağını belirtmiştir. Ayrıca kullanışsız bir güncelleme gibi görünen bu değişiklik bir çoğumuzun veritabanı içinde oluşturduğumuz tablolardaki token sütunu kontrol etmemizi gerektirecektir.

Yeni API

            Geçmişte push bildirimleri iş akışı olarak istek talep/cevap istemeyen modası geçmiş modellere sahipti. Her push bildirimi göndermek istediğimizde, APNS Geri Bildirim servisinden bilgi talep ediyorduk.  (Şemada gösterildiği üzere)


            Neyse ki bu durum artık tarih olmak üzere. Üstelik bu değişim sadece iOS 9 ve OSX 10.11 için değil, tüm yeni çıkan iOS ve OS X versiyonları için geçerlidir.

            Yeni API’ler HTTP/2 üzerine kurulmuş olup, birer talep/cevap modelidir ve dahası tekrarlanabilir (bir çok talep için aynı bağlantıyı kullanabilen) bir sistemi kullanır. Eminiz ki geliştirilen yeni sistem daha etkili olup ihtiyaçlara daha rahat karşılık verecektir.

            Hali hazırda bulunan sistemi göz önüne alacak olursak, eminim ki neden bu yeni API’yi kullanmalıyım gibi sorular merak konusudur. İlk olarak, Apple’ın eski API versiyonlarında yaptığı hataları bir kenara bırakıp son çıkan API’de yeniliklere daha fazla yer vereceği söz konusu.

Yenilik 1 : Geri Bildirimler

            Server’a her istek yapıldığında anında geri bildirim almak mümkün ve mevcut geri bildirim servisi artık gereksiz olacak.





Yenilik 2 : Tek Sertifika

            Push göndermek için eskiden hem developer hem de production sertifikalarına sahip olmamız gerekirdi ve bu biraz kafa karıştırabiliyordu. Sonunda Apple bunun da kolaylığını sağladı ve yeni API için sadece tek bir sertifika talep etmekte.

Yenilik 3 : Veri Yükü Büyüklüğü

            Sonunda gönderilebilen veri yükü büyüklüğü 2 KB’tan 4KB’a yükseldi.

Özetleyecek Olursak


            Bu büyük değişimler oturumun sonlarına doğru yapılmış olup, gözden kaçması muhtemel yeniliklerdir. Her ne kadar sonlarda duyurulsa da, uygulamanız için önemli olup entegrasyonu biraz zaman alabilir. Eğer duyuru’yu izlemek isterseniz, ilk 10 dakikayı geçerek “Text Input” ‘a ulaşabilir, arkasından 16:45’e geçerek yeni API sağlayıcılarına ulaşabilirsiniz.

Yazının orjinali için tıklayınız.

25 Şubat 2016 Perşembe

Application Transport Security

Application Transport Security (Uygulama Taşıma Güvenliği) nedir?

WWDC 2015 konferasında; Apple, iOS 9 ve OSX 10.11 El Capitan için “Uygulama Taşıma Güvenliği”ni duyurdu. Konferansta sunulan “iOS’taki yenilikler neler” kılavuzunda konuyla ilgili olarak aşağıdaki bilgiler yer alıyordu:

App Transport Security (ATS) lets an app add a declaration to its Info.plist file that specifies the domains with which it needs secure communication. ATS prevents accidental disclosure, provides secure default behavior, and is easy to adopt. You should adopt ATS as soon as possible, regardless of whether you’re creating a new app or updating an existing one.
If you’re developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible.

Kısaca özetlemek gerekirse, mobil uygulamalar yüksek ihtimalle HTTP protokolü ile çalışan bir sunucuya bağlanırlar (örneğin seninsunucun.com). Eğer bu sunucu en son SSL teknolojisini desteklemiyorsa (TLS v1.2 ve üzeri) bağlantı aşağıdaki gibi bir hata mesajı verir ve istek başarısız olur;

CFNetwork SSLHandshake failed (-9801)
Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo=0x7fb080442170 {NSURLErrorFailingURLPeerTrustErrorKey=, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorCodeKey=-9802, NSUnderlyingError=0x7fb08055bc00 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1200.)", NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://yourserver.com, NSErrorFailingURLStringKey=https://yourserver.com, _kCFStreamErrorDomainKey=3}

İlginç bir şekilde kod siz http yazmış olmanıza rağmen bağlantıyı https olarak dener. Burada Apple bize derinden bir mesaj vermektedir, http kullanarak kullanıcıyı tehlikeye atmak ancak dikkatsizlik sonucu olabilir. Yoksa bu çağda http kullanmak kesinlikle gariptir :)

UYARI : ATS sizin ve kullanıcılarınız için iyi birşey ve bunu iptal etmemeniz önerilir!

Apple’ın burada herkesi zorla https’e çekmesinin tek sebebi bunun son kullanıcı için iyi bir şey olmasıdır. HTTPS kişisel datanın güvenli olmayan bir bağlantı üzerinden ele geçirilmesini önler ve kullanıcılar için harikadır. Tabii bu şekilde kuralların varolması sizin onları kullanmak zorunda olduğunuzu göstermez.

Eğer uygulamanız kontrolünüz dışında bir 3. parti API’ye bağlanıyorsa ya da bir RSS kaynağı gibi güvenliğin çok da gerekli olmadığı bir siteden veri çekiyorsa aşağıdaki yöntemleri kullanabilirsiniz.

Tabii eğer sunucu size aitse asıl yapmanız gereken sunucuya SSL desteği yüklemektir.

ATS‘i nasıl atlatırız?

Domain Bazında Hariç Tutma

Güvenli olmayan (TLS 1.2 altı) bir sunucuya bağlanmak için aşağıdaki kodu Info.plist dosyanıza eklemeniz gerekmektedir.

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>yourserver.com</key>
    <dict>
      <!--Include to allow subdomains-->
      <key>NSIncludesSubdomains</key>
      <true/>
      <!--Include to allow HTTP requests-->
      <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
      <true/>
      <!--Include to specify minimum TLS version-->
      <key>NSTemporaryExceptionMinimumTLSVersion</key>
      <string>TLSv1.1</string>
    </dict>
  </dict>
</dict>
Peki ya Güvensiz Domain adreslerini bilmiyorsam?

Eğer uygulamanızın içinde birden fazla SDK mevcutsa ve siz bu SDK’lerin nerelere bağlantı açtığını bilmiyorsanız (örneğin bir reklam SDK’sı ya da analitik çözümü) aşağıdaki kodu kullanarak ATS’yi tamamen ortadan kaldırabilirsiniz. Ancak Apple’ın yakın dönem içinde AppStore kabul sürecinde bu kullanıma kuşkucu yaklaşacağını düşünüyorum;

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true>
</true></dict>

20 Haziran 2014 Cuma

WWDC 14 ve getirdikleri

Geçtiğimiz yıl yapılan WWDC'de duyurulan iOS7 son kullanıcı için çok fazla yenilik içeriyordu. Özellikle arayüz ve kullanıcı deneyimi (UI / UX) konusunda yaptıkları büyük değişiklikler aslında bu sene duyurulan altyapılara bir hazırlık niteliğindeydi. WWDC 13 uygulama geliştiricilerin hayatına Mac OS X Server'da sunulan XCode otomasyon servisleri ve birkaç yenilikçi API dışında fazla bir şey getirmemişti. Bu seneki etkinlik ise son kullanıcılara fazla bir şey ifade etmese de geliştiriciler açısından bir devrim niteliği taşıyor. Zira bir platformun yapıtaşı olan yazılım dilini değiştirmek başka şekilde ifade edilemez. Bu konuda da Apple'ı ayrıca takdir etmek gerekir; diğer platformlar geliştiricileri çekmek için para dağıtmak dâhil her yolu denerken, 9 milyon geliştiricinin 5 yıllık tecrübesini sıfırlamak her firmanın cesaret edebileceği bir davranış sayılmaz.
Bu yazıda yeni API'leri tek tek anlatmak yerine (bunları öğrenmek isteyen Bahri'nin detaylı yazısınıokuyabilirler) Apple'ın duyurduğu bu yeni servislerin piyasaya ve bizlere olası etkilerini kişisel yorumlarımla size aktarmaya çalışacağım.
  1. HouseKit: Apple'ın akıllı ev pazarına girmesi rakiplerinin daha varlığını bile hissedemediği bir pazarı erkenden ele geçirmesi anlamına geliyor. Özellikle lüks emlak patlaması yaşayan ülkemizde iOS cihazlarla yönetilen rezidanslar önümüzdeki sene hayatımıza girecek.
  2. Widget: Android'cilerin senelerdir övünç kaynağı olan widget, (ne yazık ki) iOS'a da geldi. Bütün API'leri barındırmak isteyen Türk uygulamaları eylül ayında Notification Center'ı widget'larla işgal edecektir.
  3. Extensions: Uygulamaların birbirine servis sunması gerçekten müthiş bir özellik. Birbirlerine bağlı çalışan ve güzel servisler sunan uygulamalar aynı zamanda birbirlerinin yükleme sayılarını da artıracaktır. Örneğin Instagram filtrelerini açtığı takdirde kendi uygulamamızda fotoğraflarda bu filtreleri sunabileceğiz ve Instagram'ı kendi kullanıcılarımıza önereceğiz. Bu da dolaylı yoldan Instagram'ın yükleme sayısını etkileyecek.
  4. Touch ID: Özellikle inovasyon sıkıntısı yaşayan bankacılık uygulamalarının Touch ID'yi ilk fırsatta uygulamalarına ekleyeceklerini düşünüyorum. Eylül ayında “ilk Touch ID'li x bankası” reklamlarını bekleyin.
  5. Metal ve SceneKit: Geçen sene SpriteKit ile OpenGL işlemlerini kolaylaştırarak oyun geliştiricilere rahat bir API sunan Apple, bu kolaylığın karşılığında uygulamaları rakip platformlara taşınamaz hale getiriyordu. Bu sene Apple bunu bir adım ileri taşımakla kalmadı, duyurduğu yeni framework ile (Metal) 64 bit işlemcinin üzerindeki performans yüklerini de attığını duyurdu. Şahsen oyun geliştirici olmadığımdan bu konuda derinlemesine yorum yapamayacağım ama WWDC'de yapılan demoda gördüğüm kadarıyla Apple 2 sene içinde konsolların ciddi bir rakibi haline gelecek. Bunun sebebi de geçen sene duyurulan Game Controller Framework ile joystick'e çevrilmiş bir iPhone ve muhtelemen 64 bit A8 işlemciye sahip yeni bir iPad kombinasyonu bütün iOS sahiplerini bir konsol sahibi yapacak. Bunun için 400 dolarlık bir PS4 yerine 99 dolarlık bir Apple TV almanız yeterli! iPad zaten zorunlu olarak aldığımız bir cihaz, konsol ise nice-to-have.
  6. Gözden kaçan ve beni şahsen çok etkileyen klavyenin akıllı tamamlama özelliği, yapay zekânın sessizce cihazı ele geçirmesine güzel bir örnek. İçinde bulunduğu ortama göre öğrenen ve tepki geliştiren bu sistem, "cümlelerinizi sizin yerinize tamamlar" olarak anlatıldı ancak gidebileceği noktalar sonsuz. Çok uzak olmayan bir gelecekte "sizin yerinize telefonla konuşur", "sizin yerinize toplantınızı yapar", "bugün uyuyun, iPhone'u fişe takın, o sizi idare eder" gibi tanıtımlarla da karşılaşacağız gibi geliyor.
  7. HealthKit: Bu özellik zaten bekleniyordu ama yine de önemli bir ilerleme. Ancak buradaki asıl hamleyi önümüzdeki sene göreceğiz.
  8. Bu etkinlikte Apple'ın söndürdüğü iki firma var; Dropbox ve Parse.com. Bunların fiyat konusunda da Apple ile rekabete girebileceğini düşünmüyorum, dolayısıyla Google veya Samsung gibi bir dev tarafından satın alınma yoluna gidebilirler. Bir de Candy Crush ve Clash of Clans gibi oyunların gelirlerinde Family Share yüzünden bir düşüş bekliyorum.
  9. Swift: Objective C zordur, öğrenmesi uzun sürer, sadece Apple için öğrenilmez derken Apple Swift adında yeni bir yazılım dili duyurdu. Yine sadece iOS 8 (geriye dönük değil) için bütün dünyanın öğrenmek zorunda kalacağı bu dil, Apple'ın iddiasına göre daha az kodla daha çok iş yapmayı ve Objective C'ye göre 2,5 kat daha hızlı çalışan programlar yazmayı sağlıyor. Performans olarak bilemem ama bunun sektöre aşağıdaki etkileri olacak;
  • Bu sene iOS öğrenmek isteyen yazılımcılar ciddi bir bocalama süreci yaşayacaklar. Swift öğrenirlerse piyasadaki firmalar sadece iOS8 isteyen uygulama yazmayacağından iş bulamayacaklar. Objective C ise yüksek öğrenim süresi ile maksimum 1,5–2 sene daha yaşayacak bir dil için aşırı maliyetli olacak. Dolayısıyla piyasa bir süre junior sıkıntısı yaşayacak.
  • Objective C eğitmeni bir elin parmaklarını geçmezken Swift eğitmeni mumla aranacak. Üstelik şu anda Swift ile ilgili dünyadaki doğru dürüst tek kaynak iBooks'ta bugün yayınlanan 600 sayfalık Apple'ın Swift kitabı!
  • Mevcut projelerin hepsi 2 sene içinde Swift'e geçmek zorunda kalacağından (iOS 10'da Objective C desteğinin kalkacağını varsayarak) çoğu proje baştan yazılacak, geri kalanı da ölecek. Bu da firmalara ciddi ek maliyetler getirecek.
  • Önümüzdeki sene (2015 Q2) hem Swift hem Objective C bilen yazılımcılar ciddi paralar kazanacak. Bunun sebebi hem Swift bilen kişi sayısı az olacak ve yeni projeler Swift ile yazılmak istenecek (yeni projelerin iOS 8 gönderilme zorunluluğu) hem de eski kodlara yeni özellik eklemek için Objective C bilen kişilere ihtiyaç duyulacak.
Benim WWDC'de dikkatimi çeken noktalar bunlar. API'leri detaylı inceledikçe başka blog yazılarında yeni özellikleri paylaşmaya devam edeceğim. 
Not : Bu yazının orjinaline Geleceği Yazanlar portali üzerinden ulaşabilirsiniz. (https://gelecegiyazanlar.turkcell.com.tr/blog/wwdc14-ve-getirdikleri)

23 Kasım 2013 Cumartesi

Mobil uygulama dünyasındaki üçüncü parti servisler

Üçüncü parti servisler

Bir mobil ürün geliştirme süreci her ne kadar tasarım ve kod ile başlasa da, bir uygulamanın hayatta kalması, kullanıcının doğru anlaşılması ile mümkündür. Bu noktada da ürün yöneticilerine büyük sorumluluk düşmektedir. Eskiden en büyük zorluk olarak nitelendirilen “uygulamayı kullanıcıya yükletmek” günümüzde milyona yakın uygulamanın bulunduğu bu vahşi rekabet ortamında sadece ufak bir problem olarak anılmaktadır. Artık asıl sorun kullanıcının uygulamayı “kullanması” ve uygulamanın kendini sürekli olarak yenileyebilmesidir.

Bu blog yazısında hem ürün yöneticilere hem de bağımsız uygulama geliştiricilere mobil uygulama yönetim sürecinde karşılaşabilecekleri çeşitli problemleri daha kolay halletmelerini sağlayacak bir takım servislerden bahsedeceğiz. Çoğunlukla ücretsiz sunulan bu servislerde güzel analiz araçları bulabileceğiniz gibi uygulamanın test sürecini hızlandıran araçları da tanıyacaksınız.

Flurry

Uygulamanızın kullanımını takip etmeniz size, kullanıcıların uygulamada hangi ekranları görüntülediği ve hangi özellikleri ne kadar süre boyunca kullandığı gibi konularda bilgi sahibi olmanızı sağlar. Bu bilgilerle uygulamanızın sonraki versiyonlarında kullanıcıların istek ve davranışlarına göre daha efektif bir uygulama sunabilirsiniz. Aynı zamanda kendi belirlediğiniz hareketleri de (event) takip ederek uygulamanızda belirli aksiyonların (örneğin satın alma) ne kadar gerçekleştirildiğini görebilirsiniz.

Oldukça ünlü bir mobil uygulama analiz servisi olan Flurry, yukarıdaki amaçla kullanabileceğiniz ücretsiz bir servistir. Dünya üzerindeki bir çok ünlü uygulamanın ve büyük firmaların analizini yürüten Flurry, ayrıca Blog sayfasından yayınladığı istatistiksel bilgilerle mobil yazılım endüstrisinin ne yöne gittiğine dair detaylı bilgiler vermektedir. 



Flurry SDK’sı aracılığıyla topladığı bilgilere dayanarak günlük raporlar çıkarmakta ve uygulamanın kullanımı ile ilgili ön görüler de yapabilmektedir. Ancak burada dikkat etmeniz gereken toplanan bilgilerin Flurry sunucularında saklanıyor olmasıdır. Kullanıcı bilgilerinin anonim de olsa paylaşılmasının sakıncalı olduğu bankacılık ya da telekom gibi sektörlerde kullanılması doğru olmayabilir. Bunun dışında bütün uygulama bilgilerinin tek bir sunucuda toplanıyor olması kullanıcılarla ilgili oldukça detaylı bilgilere sahip olmanızı sağlar. Flurry kullanıcıların demografik yapısı ve yükledikleri diğer uygulama tipleriyle ilgili raporlar sunmaktadır.

Flurry’nin uygulama içine entegrasyonu ile ilgili detaylı bilgileri iOS ve Android derslerimizde göstermiştik. iOS anlatımına buradan, Android anlatımına ise buradan ulaşabilirsiniz.

Countly

Açık kaynak kodlu bir analiz aracı olan Countly, gerçek zamanlı takip ve gelişmiş arayüzü ile Flurry’e güçlü bir rakip haline gelmiştir. http://count.ly adresinden indirip kendi sunucunuza kurabildiğiniz Count.ly, nodeJS dilinde geliştirilmiştir ve MongoDB kullanmaktadır. Aynı zamanda kendinize özel kullanıcı hareketi (event) izleme özelliği de sunan Count.ly, özellikle girişimcileri ve AppStore’da kendi uygulamasına sahip bağımsız geliştiricilerin öncelikli tercihi olmaktadır.

Testflight

iOS platformunda uygulama geliştirme sırasında uygulamanın derlenip test cihazlarına gönderilmesi oldukça zahmetli bir iştir. Özellikle büyük bir ekipseniz ve dağıtım listelerine göre çalışıyorsanız (yöneticiler, test ekibi, ürün yöneticisi vs) yeni cihazların eklenmesi ve uygun sertifika dosyalarının hazırlanması oldukça fazla vaktinizi alacaktır.

Testflight, uygulama dağıtımında size sunduğu basit arayüz, izinli listeler ve uyumlu cihaz filtreleme özellikleriyle işinizi oldukça hızlandıracaktır. Yeni bir uygulama versiyonu çıktığında tek yapmanız gereken Testflight arayüzünde ipa dosyasını ekrana sürüklemek ve açıklama girmektir. Uygulamanın versiyon bilgileri ve kullanılabileceği cihazlar otomatik olarak ipa dosyası içerisinden okunur ve uygulamayı yükleyebilecek kişi listesi size sunulur. Siz de uygulamayı denemesini istediğiniz kişileri listeden seçerek bir uyarı epostası gönderilmesini sağlayabilirsiniz.



Testflight uygulamaları ağ üzerinden yüklediği için ipa’nın eposta üzerinden gönderilmesi ya da iTunes üzerinden yüklenmeye çalışılması söz konusu değildir. Bu da size güvenli ve hızlı bir yükleme kanalı sunar. Eğer bir mobil uygulama geliştirme firmanız varsa Testflight uygulama dağıtım süreçlerini oldukça kolaylaştıracaktır.

Flinto

Uygulamanın taslak ve tasarım sürecinde akışların belirlenmesi ve en önemlisi prototipinin hazırlanması, uygulama geliştirme başlamadan kullanıcı deneyiminin test edilmesi açısından oldukça önemlidir. Ayrıca uygulamayı “hissetmek”, uygulamanın doğru tasarım ve akışa sahip olup olmadığı hakkında ilk kullanıcılara önemli geri beslemeler sağlamaktadır.

Flinto son zamanlarda oldukça fazla kullanılan ve gittikçe popülerleşen bir prototipleme aracıdır. Genellikle tasarımcılar uygulamanın ilk arayüzünü oluşturduktan sonra tasarımı paylaşmak ve fikir almak için Flinto’yu tercih etmektedirler. Basit bir web arayüzü üzerinden kullanılan Flinto ile uygulamanızın ekranlarını web üzerinde giydirebilir ve butonlara çeşitli aksiyonlar verebilirsiniz. Flinto belli bir ekran üzerinde alınabilecek aksiyonları kullanıcıya gösterir ve bir geçiş efekti ile yeni ekranı açarak kullanıcıya uygulamanın akışı hakkında fikir verir.



Flinto’nun bir diğer özelliği ise paylaşılan bağlantının mobil cihazlar üzerinde sanki gerçek bir uygulamaymış gibi ekran boyutuna uygun şekilde açılmasıdır. Böylece mobil uygulama deneyimine yakın bir deneyimle uygulamayı deneme şansı elde ederiz. Aynı zamanda Flinto sıradan bir web tarayıcı ile de uygulamayı deneme şansı vermektedir.

Flinto 30 günlük deneme süreci sonunda yıllık 96 dolarlık bir ücret talep etmektedir. Eğer profesyonel anlamda uygulama tasarımıyla uğraşıyorsanız ya da bir mobil uygulama geliştirme firmanız varsa, Flinto prototiplerini tanıtmanız açısından büyük kolaylık sağlayacaktır.

Urban Airship

Kullanıcıya uygulaması açık olmasa da bir mesaj göndermeyi sağlayan Uzaktan Uyarı Servisleri (Push Notification), mobil pazarlama ekiplerine de alternatif bir erişim kanalı oluşturduğundan her türlü uygulamanın vazgeçilmez özelliği haline gelmiştir. Apple platformunda APNS (Apple Push Notification Service) ve Android platformunda GCM (Google Cloud Messaging) olarak bilinen push servisleri isimleri farklı olsa da aynı prensiple çalışırlar; uygulama yüklendiğinde cihaza özel bir kod üretilir (token) ve uygulama sahibi bu kodu kendine ait bir sunucuda saklamak zorundadır. Daha sonra bir mesaj atılmak istediğinde bu kod sayesinde doğru kullanıcıya ulaşmak mümkün olur.

Bu sebepten dolayı uygulama geliştiriciler push servisi kullanmak istediklerinde kodların (token) saklanması için bir sunucu geliştirmesi yapmak zorundadır. Urban Airship ise uygulama sahiplerini bu geliştirmeden kurtararak uygulamalara ait kodları toplayan ve sunduğu arayüz üzerinden mesaj atan bir servis sunmaktadır.



Eğer uygulamanızda APNS ya da GCM servislerinden birini kullanacaksanız Urban Airship ile uzun geliştirme maliyetlerinden kurtulup hızlıca mesaj atmaya başlayabilirsiniz. Bununla beraber Urban Airship’in sektörlere özel sunduğu kampanya paketlerinden faydalanabilir, gelişmiş arayüzü ile mesajlarla ilgili analizlere ulaşabilirsiniz.

Distimo
Uygulamanızın dükkanlardaki durumunu takip etmek için detaylı bir analiz servisi sunan Distimo, sahip olduğu web arayüzü sayesinden uygulamanıza ait istatistikleri her an takip edebilmenizi sağlar. iTunes Connect’e göre çok daha detaylı bir hizmet sunan Distimo, rakip analizi, birden fazla uygulama dükkanını takip, uygulamanıza olan ilginin ölçülmesi gibi özellikleriyle de alanında önde gelen servislerden biri olmaktadır.




Bunun dışında Distimo blog sayfası üzerinden (distimo.com/blog) yayınladığı raporlarla sektörün gidişatı ile ilgili oldukça isabetli tahminler yapmaktadır. In app purchase rakamları, türlere göre uygulamaların kullanımı, toplam indirme rakamları gibi çok çeşitli konularda sunulan raporlar, kendi uygulamanıza yön vermeniz için size eşsiz bir kaynak olacaktır.

Not : Bu yazı 22.11.2013 tarihinde Geleceği Yazanlar Blog'da yayınlanmıştır.

18 Mart 2013 Pazartesi

Türkiye Üniversitelerindeki Mobil Uygulama Geliştirme Dersleri

Geçtiğimiz günlerde bir merak üzerine Türkiye'deki üniversitelerin bilgisayar mühendisliklerinin lisans programlarını tek tek taradım ve mobil uygulama dersi veren kimler var diye araştırdım. YÖK'ün en girişimci üniversiteler listesinin yanı sıra Anadolu'daki belli başlı üniversiteleri de taradığımda aşağıdaki listeyle karşılaştım.

Not: Listede eksik olan ve atladığım bir üniversite varsa yorum olarak yazabilirsiniz. Memnuniyetle eklerim. Derslerin açıklamaları bölümlerin sayfalarında ilan ettikleri şekliyle yazılmıştır.


Doğuş Üniversitesi

COME 335 Mobil Uygulama Geliştirme 3(2+0+2) ECTS 5

Bu ders öğrencilere mobil uygulama geliştirme ortamı temellerini vermekte ve onların mobil telefonlar, tabletler gibi cihazlar için uygulama geliştirebilmelerini sağlamaktadır. Ders mobil cihazların ve uygulama karakteristiklerinin tanıtımı ile başlamakta ve derste var olan mobil teknolojiler, uygulama modelleri ve altyapıları, mobil uygulama geliştirme platformları ve bileşen kütüphaneleri anlatılmaktadır. Dersin uygulama kısmında yaygın kullanılan mobil uygulama geliştirme platformlarından birisi seçilerek örnekler yapılacaktır.

Sabancı Üniversitesi

Mobil Cihazlarda Programlama (seçmeli)

Bu ders, kablosuz ağlar üzerinde çalışan mobil cihazlarda kullanılan uygulamaların programlamasına giriş teşkil etmek üzere tasarlanmıştır. Ders, kablosuz teknolojilerin evrimi ve mobil iletişimde kullanılan temel kavramların özeti ile başlamaktadır. Öğrenciler mobil cihazlar için simülasyon platformu yaratan yazılımlar ile WML (Wireless Markup Language), WMLScript ve Java 2 Micro Edition (J2ME) dillerinde mobil web uygulamaları tasarlayacak ve geliştirecektir.

İnönü Üniversitesi

Mobil cihazlar için uygulama geliştirme (zorunlu)

Mobil Hesaplamaya Giriş, Mobil İşletim Sistemleri ve Mobil Platformlar, Kullanıcı Arayüzü Tasarımı ve Geliştirilmesi, Veri Süreklilik Teknikleri, Haritalar ve Konum Tabanlı Servisler, Ses iletimi ve SMS, Sensörler, Proje Sunumları

İzmir Ekonomi Üniversitesi

Mobil Uygulama Geliştirme (Seçmeli)

Bu dersin amacı öğrencilerin mobil cihazlar üzerinde uygulama geliştirme hakkında bilgi sahibi olmaları, mobil cihazlarla diğer programlanabilir cihazlar arasındaki uygulama geliştirme farklarını görmeleri, mobil cihazlar için uygulama geliştirmeye yarayan yazılım çatılarını tanımaları ve takım halinde geliştirecekleri bir uygulama ile pratik deneyim kazanmalarıdır.

Özyeğin Üniversitesi

CS 472 - Mobil Uygulama Programlama

Bu ders mobil uygulamalar geliştirmek için gerekli olan programlama dillerini, mimarileri, protokolleri ve cihazları tanıtır. Kapsanan konular arasında objective-C dili, MacOS işletim sistemi ve Cocoa Touch (dokunmatik) API, bellek yönetimi, arayüz oluşturma, cihaz kontrolleri, mobil iletişim arayüzleri, veri yönetim ve sunumları, tablo sunumu, lokasyon temelli uygulamalar, efektif pil ve güç kullanımı, ivmeölçer, kamera kullanımı, video ve web içerik gösterimi, test etme ve yöreselleştirme konuları bulunur. Dersin zorunlu kitabı yoktur, internette bulunan pek çok kaynaktan yararlanılacaktır.

Yeditepe Üniversitesi

CSE 476 Mobil Sistemlerde Uygulama Geliştirme

Mobil bilişim sistemlerine giriş, mobil işletim sistemleri ve yazılım geliştirme ortamları, mobil iletişim agları ve yapıları (GSM, CDMA, 3G/WCDMA/ UMTS), kısa mesafe iletişim teknolojileri (Bluetooth, WiFi, Zigbee), mobil sistemlere uygulama geliştirme teknikleri (J2ME, Android-Java, Microsoft Windows Mobile-.Net Framework), mobil uygulama yayınlama ve dağıtma (SMS, WAP Push, Over-the-air (OTA) servis tedariki ).

Kadir Has Üniversitesi 

CE 489

Bu dersin amaci mobile cihaz lari ögrenim. Bunlar icinde Android platformunu secerek, bu platformda nasil program için design ve Java dilinde programlama yapilir. Bu dersin amaci ögrencilere sinifda ornek projeler yaparak, kendi projelerini gelistirmesini hedeflemektetir. Bu dersde ögrentikleri konulari örnegin UI, mobil veri tabani web baglantilari kullanarak kendi projelerinde uygulamalarini hedeflemektetir. Ögrenciler orta boyutta bir mobil uygulama geliştirip. Bunu gösterimini ve sunumunu tüm sinifa yapmasini amaçlamaktatir.

Bilkent Üniversitesi 

CS 443 Cloud Computing x Mobile Applications
This course provides a hands-on introduction to cloud computing and developing mobile (smartphone/tablet) applications. The course contents include cloud computing services (virtualization, datacenter networking, wide-area storage/replication, distributed filesystems), development tools (MapReduce, Hadoop, OpenStack), fundamental tradeoffs and algorithms (CAP theorem, NoSQL systems, Paxos) and applications (big-data analysis, real-time data systems, large-scale webservices). The course also covers iOS (iPhone/iPad) programming and Android programming to enable students to develop mobile applications with backend storage ?amp; computing components running on the cloud (Amazon AWS, Microsoft Azure, or Google AppEngine). Credit units: 3 ECTS Credit units: None, Prerequisite: CS 342.

Koç Üniversitesi

COMP. 319 MOBİL CİHAZ PROGRAMLAMA

Bu ders, mobil cihazlar uzerinde yazilim ortamlari ve dillerini kapsamaktadır. Mobil cihaz mimarisi ve yazılım geliştirme ortamları, MIDP Uygulama Modeli, Kullanıcı Arayüzü Kütüphaneleri, Yüksek Seviye Kullanıcı Arayüzü Bileşenleri, Alçak Seviye Kullanıcı Arayüzü Kütüphaneleri, MIDP veritabanı kütüphaneleri. Mobil cihaz işletim sistemi ortamları ve Symbian, Android, Mobile Windows, iPhone işletim sistemleri derste işlenmektedir.

Maltepe Üniversitesi

CEN 431-Mobile Application Development

Bu derste öğrencilere mobil cihazlarda yazılım geliştirme hakkında bilgiler verilir. Android işletim sisteminin kurumu, özellikleri ve uygulama geliştirme anlatılır.

TOBB

Bil 425 Mobil Cihazlar İçin Yazılım Geliştirme

Varolan mobil platformlar. Mobil cihazlar ile geleneksel bilgisayarlar arasındaki farklar. Geliştirme ortamları. Platform seçiminin anlaşılması: programlama inşa birimleri, I/O ile çalışma, multimedya özelliklerinin kullanılması. Debug yapma. Test yapma (simulatorde, cihazlarda, bulutta). Uygulama dağıtım kanalları.

Dokuz Eylül Üniversitesi

CME4422 Mobile Devices and Applications

Beykent Üniversitesi 

82000000001433 Mobil Uygulama Programlama


6 Şubat 2013 Çarşamba

Developer hesapları artık kredi kartıyla güncelleniyor

Son dönemde Apple Türkiye'de giderek daha fazla hizmetini sunmaya başladı. Bunu en güzel örneği geçtiğimiz günlerde uygulama geliştiricilere sunulan bir özellik oldu. Uzun süredir Türkiye'den açılan Apple uygulama geliştirici hesapları ancak Apple'a faks çekerek güncellenebiliyordu. Geliştiriciler, adres bilgileri ve kredi kartı numaralarını Amerika'daki merkeze faks yollayarak hesaplarının süresini uzatabiliyorlardı.

Sonunda Apple, Türkiye'yi de diğer ülkeler gibi normal sistemine dahil etti ve artık geliştiriciler bu faks zorluğundan kurtulmuş oldular. Artık yeni bir hesap almak istediğimizde (örn. Mac Developer) ya da hesabımızı uzatmak istediğimizde aşağıdaki ekranda ödeme bilgilerini girerek satın alma işlemini gerçekleştirebiliyoruz. Bilgiler girdikten sonra bir iki gün içinde işlemin sonucuyla ilgili bilgilendirme yapılıyor.



12 Eylül 2012 Çarşamba

Objective C ve iPhone'da Uygulama Geliştirme #2


Objective C diline giriş yapmak ve iPhone'daki temel konseptleri öğrenmek isteyen geliştiriciler ve bilgisayar mühendisliği öğrencilerini hedefleyen kitabımızı geçen ay sizlere duyurmuştuk. Özellikle mobil analiz konusuna iki ayrı bölüm ayırmasıyla piyasadaki benzerlerinden ayrılan Objective C ve iPhone'da Uygulama geliştirme adlı kitabımız online alışveriş sitelerinden ve D&R mağazalarından satın alınabiliyor. (Hepsiburada.com üzerinden almak için tıklayınız)

Kitap içinde oldukça pratik bir dille anlatılan iPhone'da uygulama geliştirme bölümünde bahsedilen lokasyon destekli To-Do uygulamasına dair kodları bu adreste bulabilirsiniz. Kitapla ilgili her türlü sorunuzu veya geri bildirimlerinizi bana iletebilirsiniz.

Twitter : com90

Not : Kitabın tanıtımına verdikleri destek için iPhoneTurkey.biz'e teşekkür ederiz.