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.