Yeni Başlayanlar için Mobil Tavsiyeler – 2

Yeni Başlayanlar için Mobil Tavsiyeler yazı dizimize devam ediyoruz.

 

How_to_Build_a_Mobile_AppAmerika’yı Yeniden Keşfetmeyin!

Büyük markalar bile (Instagram, Facebook vs.) uygulamalarında bazı modülleri hazır kullanırken, bizler neden yeni baştan yazalım? Ancak hazır modüller kullanın derken tabii ki emek hırsızlığından bahsetmiyorum. Açık kaynak kütüphaneler kullanmanızı ve bu ürünlerin lisanslarına dikkat etmenizi tavsiye ederim sizlere. Açık kaynak olması nedeniyle hem kütüphanenin nasıl yazıldığını inceleyip öğrenebilirsiniz hem de ufak ya da büyük, kütüphaneye katkı sağlayabilirsiniz. Ayrıca açık kaynak kütüphanelerin bir avantajı da kendi probleminize özel bazı ufak düzenlemeler yapabiliyorsunuz. (Lütfen bununla ilgili lisans sözleşmesine göz atın.)

Aşağıda bir kaç güzel kütüphane önereceğim Android için. Bir sonraki yazıda da iOS için olacak bu öneriler. Bu kütüphanelerin yaptığı işleri yapmanız gerekiyorsa tavsiyem kesinlikle ilgili kütüphaneyi kullanmanız. 🙂

Android-PullToRefresh

2012_06_02_ptrChris Banes’in yarattığı mükemmel bir kütüphane. Ancak baştan uyarmam gerek artık bu projenin bakımı ile ilgilenilmiyor. Son güncelleme 2 yıl önce gelmiş. Ancak hala temel ihtiyacımızı karşılıyor.

Neredeyse her uygulamada görmüşsünüzdür, bir liste vardır ve listeyi tutup aşağıya çektiğinizde içerik yenilenmeye başlar. Örneğin Twitter ve Facebook’un haber akışları. Bu görevi oldukça başarılı bir şekilde yerine getiriyor PullToRefresh kütüphanesi.

Android-Universal-Image-Loader1350641152_5486

Bu kütüphane de nostra13 kullanıcı adlı Sergey Tarasevich’in eseri. Bakımı oldukça iyi ve sık yapılan bir proje. Ayrıca Sergey’den farklı bir çok gönüllü de kütüphanenin gelişmesi için çabalıyor.

Android’de network işlemleri, cache’lemek, bunları yaparken performans kaybı yaşamamak zor işlerdir. Hele de bunları görseller göstermek için yapıyorsanız işiniz daha da zor-du bu kütüphaneyi kullanana kadar. Oldukça kolay kurulumu ve kullanımıyla sizi bu dertlerden kurtarıyor. Performans olarak da oldukça iyi bir kütüphane.

feature_01ActionBarSherlock

Android artık eski stil menüyü kaldırıp, tüm menüleri Action Bar şekline dönüştürüyor. Tabii ki biz geliştiricilerden de bunu bekliyor. Ancak bildiğiniz üzere bu menü, eski Android sürümlerinde desteklenmiyor. Jake Wharton bu sorunu çözmek için bahsettiğimiz kütüphaneyi yazmış. Basit ve hızlı kurulumu sayesinde uygulamanızı tüm Android versiyonları için Action Bar kullanır hale getirebileceksiniz.

Google Gson

Bazen objeleri karakterlere dökmek istersiniz. İşte Gson bu noktada devreye giriyor. Şaka bir yana örneğin bir objeyi SharedPreferences’a kaydetmenin en gson-java-jsonkolay yollarından biri bu. Objenizi Gson ile json formatında stringe çevirip, paylaşılan alanda saklayabiliyorsunuz. Kullanmak istediğinizde tekrar stringi objeye çevirebiliyorsunuz. Oldukça hızlı çalışan Gson, Google tarafından geliştirilmiş bir kütüphane.

 

 

Serinin bir sonraki yazısına kadar görüşmek üzere! 🙂

Read More

Yeni Başlayanlar için Mobil Tavsiyeler – 1

keep-calm-the-junior-developer-is-here

Merhaba. Bu yazı dizisinde istek üzerine, mobil uygulama geliştirmeye başlayacak arkadaşlar için naçizane “mobil tavsiyeler”de bulunacağım. Bazı önerilerim platform özelinde olacakken, bazıları daha genel olacak. Lütfen eklemek istediğiniz önerileri yorum olarak yazın, kaynak daha da gelişsin. 🙂

 

Nasıl Başlayacağım?

Belki de en büyük sorun bu olsa gerek! “Neresinden başlayacağım?” Bu soruyu ikiye bölerek cevaplamak istiyorum: Android ve iOS.

how-to-start-a-charity-597x358

 

 

Android

Sıradan bir nesne tabanlı programlama dili biliyorsanız (tercihen Java, C#, C++ vs.) işiniz kolay. Sadece biraz Android ortamını ve mantığını anlamanız gerekecek. Bu da sizin gözünüzü korkutmasın, kısa sürede alışacağınıza emin olabilirsiniz 🙂 İlk etapta bir kitap satın almanızı önerebilirim. Ancak alacağınız herhangi bir “Android’e Başlangıç” kitabı size yalnızca 1-2 hafta yardımcı olacaktır. Sonrasında kitabın yüzüne bakmayacaksınız. Yine de başlangıç sürecini hızlandırmak ve size yardımcı olması açısından bir kitap önerebilirim: Merhaba Android – Pusula Yayıncılık. Kitabın yazarlarından biri GDG Ankara‘nın kurucusu Ahmet Oğuz Mermerkaya. Bu kitap Android geliştirmeye başlamanızda karşınıza çıkacak sıkıntıları büyük ölçüde azaltacaktır.Bunun haricinde Android’in resmi geliştirici sitesi olan Developer Android‘den mutlaka yardım almalısınız. Aklınızdaki tüm soruların cevapları orada profesyonel bir şekilde ele alınmış. Her özelliğin nasıl kullanılacağı detaylı bir şekilde ve örnek kodlar yardımıyla anlatılmış.

Son olarak da Android’in üstadı olarak nitelendirebileceğimiz Lars Vogel var 🙂 Kendisi adeta bir kitap şeklinde tutorial’lar hazırlıyor. Ücretsiz olarak sunduğu bu içerik yardımıyla yapmayı düşündüğünüz herhangi bir uygulamayı hiç sıkıntı çekmeden geliştirebilirsiniz.

iOS

iOS’da – kişisel görüşümdür – başlamak biraz daha zor gibi. Evet IDE’miz XCode ve görsel tasarım kısımları Android’e göre daha başarılı ancak programlama dili oldukça karmaşık. Objective-C denen Apple’a özgü bir dil kullanıyoruz. Söz dizimi alışagelmiş programlama dillerinden biraz farklı. Bildiğimiz C diline obje yapısı entegre edilmiş. Yani klasik C kodlarını da çalıştırabiliyor derleyici.Peki başlamak için hangi kaynakları kullanabilirsiniz? Öncelikle yine nesne tabanlı bir programlama dili biliyor olmanız sizin avantajınıza. Başlangıç için yine aynı mantıkta bir kitap önerebilirim: Objective-C Programlama Dili – Umuttepe Yayınları. Bu kitap aslında iOS’u değil, Objective-C programlama dilini anlatıyor yalnızca. iOS anlatan güncel ve başarılı Türkçe kitap ben göremedim ne yazık ki, eğer bir öneriniz varsa lütfen belirtin. Özrümle beraber yazıya eklerim 🙂

Bu kitap yardımıyla Objective-C hakkında başlangıç düzeyinde fikir edindikten sonra uygulama geliştirmeye başlayabilirsiniz. Ancak iOS’a uygulama geliştirebilmek için bir Mac bilgisayar ihtiyacınız var. İlk öğrenme aşamasında eğer bir Mac’iniz yoksa sanal makine yardımıyla sorunu çözebilirsiniz. İş gerçek bir uygulama yaratmaya geldiğinde mutlaka Mac edinmelisiniz!

Xcode’unuzu kurduktan sonra ilk bakmanız gereken yer mutlaka Apple’ın resmi geliştirici sitesi olmalı. Dürüst olmak gerekirse burası – özellikle 1-2 yıl önceki – Android’in geliştirici sitesinden daha kaliteli hazırlanmış. Emin olun sadece bu kaynağı kullanarak istediğiniz iOS uygulamaları geliştirebilirsiniz. Örneğin şuradaki dökümanı inceleyerek, sıfırdan bir iOS uygulaması geliştirebilirsiniz.

Ayrıca AndroidWeekly ve iOSDevWeekly sitelerine üye olmanızı şiddetle tavsiye ederim!

Not: StackOverFlow‘u söylememe gerek yok sanırım 🙂

Mobil Cihazlar Birer MacBook Pro Değiller! Ama Bulut?

mobile-cloud-computingÖzellikle daha önceden OSX, Windows ve Linux gibi masaüstü sistemlere programlar, uygulamalar yazan biriyseniz ve artık mobil dünyaya adım attıysanız, önceki hayatınızı unutun. Gigabyte’larca RAM, 8 çekirdekli 2.5 GHz i7 işlemciler ve terabyte’larca (belki artık petabyte) depolama alanınız yok. Ekran kartınız da 2+2 Gb’lık çılgın cihazlardan değil. Bundan dolayı ilk dikkat etmeniz gereken konu optimize kaynak kullanımı. Fakat an gelecek, ancak öyle bilgisayarların yapabileceği işlemleri mobil cihazda yapmak durumunda kalacaksınız. Bunun için çözüm basit: Bulut! “İnternet bağlantısı” diye üzülmeyin, emin olun kullanıcılar mobil cihazlarının şarjlarını 5 dakikada %30 düşürmenizden ziyade, internete bağlanmayı tercih edeceklerdir.

Yaklaşık 2 yıl önce mobil dünya daha farklıydı. Bir uygulama geliştirirken ne kadar internete az bağlanırsa, kullanıcılar o kadar rahatlıyordu. Ancak artık çoğu mobil cihaz internete sürekli bağlı halde. Yani eskisi gibi “uygulamam internet kullanmasın, işini lokalde yapsın” demenize gerek yok. Eğer web ve backend tecrübeniz varsa kendinize böyle bulut hizmetleri yaratabilirsiniz. Yok eğer ben web, server tarafından anlamam derseniz, bu işler için oldukça başarılı hizmetler sunan firmalar var. Size tavsiyem eğer gerçekten böyle bir iş gücünüz yoksa, hiç uğraşmadan böyle bir hizmeti kullanın.

Bu hizmetlere örnek olarak ilk “Parse” diyebilirim. Web tarafında tüm mobil işlerinizi hallediyor. Kolay kullanılabilir bir veritabanı hizmeti ve bulutta işlem yapabilmek için “Cloud Code” hizmetini sunuyor. Mobildeki 2.5(!) dev olan Android, iOS ve Windows Phone için SDK’sı olduğu gibi, Unity, JavaScript ve diğer .NET platformlarına doğrudan entegre edebiliyorsunuz. Bunların yanında tabi REST api hizmeti de alabiliyorsunuz.

Parse’ın diğer güzel özelliği de “Push Notification” imkanı sunması. Basit bir arayüzden, detaylı şekilde push’lar gönderebilirsiniz. Bildiğiniz üzere artık bu Push Notification’lar mobil uygulamaların en ilgi çekici özelliklerinden biri olmuş durumda.

Peki nedir bu servisin fiyatı? Aslında ücretsiz seçeneği var ve fazlasıyla yeterli bu seçenek. Ama isterseniz 200$ verip biraz daha fazla özellik satın alabiliyorsunuz.

Parse haricinde ise aşağıdaki hizmetleri önereceğim:

Heroku

Google AppEngine

 

Kullanıcı Deneyimi Herşeydir

Belki de bu konuda benim bir şeyler söylemem hadsizlik olabilir. Ancak bir kaç konuya değinmek istiyorum 🙂

94478eaeb416efcf09925ff64a4f3481Mobil cihazların, özellikle de akıllı mobil cihazların çıkış amacı pratik kullanımı sayesinde hayatımızı kolaylaştırmak. En basitinden artık fotoğraf makinesini çıkartıp, özel ayarını yapıp fotoğraf çekmiyoruz. Bir de bu fotoğrafı paylaşmak için bilgisayara kablo yardımıyla atıp uğraşmıyoruz. Bunun yerine tek dokunuşla fotoğraf çekip yine tek dokunuşla – hatta artık konuşarak – istediğimiz mecralarda paylaşıyoruz.

*Kaynak: http://www.mobinett.com/
*Kaynak: http://www.mobinett.com/

Burada aslında kilit nokta basitlik, işlevsellik ve görsel zenginlik. Bence bu üçünü topladığımızda kullanıcı deneyimi yani user experience (UX) ortaya çıkıyor. Bu noktada size en basit örneği vermek istiyorum. Örneğin bir mobil uygulama geliştiriyorsunuz ve uygulamanız hem iOS hem de Android platformunda çalışacak. Haliyle tek bir tasarım yaptırarak maliyeti düşürmek isteyeceksinizdir. Her ne kadar ana hatları benzese de kesinlikle aynı tasarımı kullanmak hata olacaktır. Çünkü iOS kullanan insanlarla Android kullanan insanların deneyimleri aynı değil. Ayrıca iki işletim sistemini kullanan cihazlar da aynı değil. Örneğin bir “tab bar” kullanacaksanız, bunu Android’de ekranın üstüne, iOS’da ise ekranın altına koymanız gerekiyor. Ekranın altı kolay ulaşılabilir olduğu için iOS’da ekranın altına koyulmalı. Ancak Android’de ekranın altında artık navigasyon butonları bulunduğu ve tab bar’ınızın bu navigasyon butonlarıyla karışma ihtimali olduğu için ekranın üst kısmına koymalısınız tab bar’ı.

 

Kullanıcı deneyimi konusunda tavsiyem tasarımlarınızı bu alanda uzman kişilere yaptırın. Bunun haricinde aşağıda oldukça önemli kaynaklar var. Bu kaynakları kesinlikle okumalısınız.

 

Android Design Principles

iOS Design Principles

UX Design Process – Rıza Selçuk Saydam

The Elements Of The Mobile User Experience

Read More