Archive for the 'mobile' category

Android’den Para Kazanma Sanatı – GDG Sunumu

May 05 2016 Published by under mobile, software development

GDG Kocaeli Üniversitesi etkinliğinde yaptığım “Android’den Para Kazanma Sanatı” isimli sunuma aşağıdaki linkten ulaşabilirsiniz:

AndroiddenParaKazanmaSanati

Comments are off for this post

Appium Essentials

Mar 22 2015 Published by under mobile, software development

B03801_MockupCover_Normal

Gözden geçirmesini (review) ve danışmanlığını yaptığım “Appium Essentials” kitabı yayınlandı:

http://www.amazon.com/Appium-Essentials-Manoj-Hans/dp/1784392480/ref=sr_1_1?ie=UTF8&qid=1429093755&sr=8-1&keywords=appium+essentials#reader_1784392480

İyi okumalar. 😉

Comments are off for this post

Native, Mobil veya Hibrid : Mobil uygulama geliştirme teknolojisi seçerken nelere dikkat etmeliyiz ?

Apr 04 2014 Published by under mobile, software development

2015 yılında dünyadaki akıllı telefon kullanıcı sayısının 2 milyar olacağı tahmin edilirken (eMarketer) firmaların mobil uygulamalara olan ilgisi artarak devam edecek gibi görünüyor. Bu ilgi karşısında bilgi teknolojileri firmaları platform bağımsız mobil uygulama geliştirmek için vizyonlarını, kullanacakları araçları ve metodolojileri belirlemeye çalışıyorlar.

Acil markete çıkma gerekliliği olan ve kısa sürede geliştirilebilen uygulamaların (ör: Etkinlik Rehberi uygulamaları..vs.) yanı sıra karmaşıklığı fazla ve mobil cihazın tüm özelliklerini (Konum belirleme, hareket sensörü..vs.) kullanan uygulamalar (ör: Arttırılmış gerçeklik uygulamaları) da pazarın önemli bir payını oluşturuyor. Tüm bu uygulamaların ortak yanı ise firmaların bilgi teknolojileri firmalarından en ucuz, en hızlı ve tüm mobil cihazları destekleyen (IPhone, Android, Windows Phone..vs.) uygulamalar istemeleri. Haliyle bu konu hakkında bir çok araç ve kütüphane var ve fakat hiçbir araç veya kütüphane kendiliğinden ucuz, hızlı ve tüm cihazlarda çalışan çözümler sunmuyorlar. Mobil araçları, kütüphaneleri veya teknolojileri kullanırken çok dikkatli olmak gerekiyor zira Facebook gibi IPhone uygulaması için HTML5’e yatırım yapıp başarısız olma şansımız yüksek.

Mobil uygulama geliştirmek istediğimizde önümüze 3 tane uzun ve ince yol çıkıyor: Native, Web veya Hibrid. Native uygulamalar ilgili mobil işletim sistemine özgü ve marketten yüklenen uygulamalardır. Sadece tek bir platforma özel olarak geliştirilir ve ilgili cihazın tüm özelliklerini (kamera, GPS, ivmeölçer..vs.) kullanabilir. Mobil web uygulamaları ise Native uygulama görünümü olan web siteleridir. Kullanıcılar bu tür uygulamalara tarayıcı üzerinden erişirler. Hibrid mobil uygulamalar ise yarı web yarı native uygulamalardır. Native uygulamalar gibi marketler (Google Play Store, Apple App Store..vs.) aracılığıyla cihaza yüklenebilirler. HTML5 destekli tarayıcı ise uygulama içerisine gömülü durumdadır. Peki mobil uygulama geliştiren kişiler veya kurumlar olarak hangi yolu ne zaman tercih etmeliyiz ? Bu konudaki ölçü birimleri şu şekilde sıralanabilir:

  • Cihaz Özellikleri:  GPS, Kamera, Hareket Sensörü..vs. gibi cihazın temel özelliklerine erişim – Native > Hibrid
  • Çevrimdışı (offline) Çalışma: İnternete bağlı olmadan da çalışabilme – Native
  • Hız: Native uygulamalar diğerlerine göre en hızlı tercihtir. Mark Zuckerberg’in (Facebook CEO) “HTML5’e yatırım yapmamız en büyük hataydı”  deyip Facebook uygulamasını HTML5’ten Native uygulamaya çevirmesinin en büyük nedeni HTML5’teki performans problemleridir.
  • Güncelleme: Native uygulamayı güncellemek ve yeni sürüme geçmek hem kullanıcı için hem geliştirici için daha zordur. En kolay güncellenen uygulamalar mobil web uygulamalarıdır.
  • Platform Bağımsızlık: Hibrid veya mobil web uygulaması tercih edildiğinde platform bağımsızlık en güçlü argüman olarak ortaya çıkmaktadır. Aynı uygulama tüm platformlarda kullanılabilir.
  • İçerik kısıtlamaları, Onaylar ve Ücretler: Hibrid ve Native uygulamalarda uygulama marketler içeriği kısıtlayabilir. Bu marketler ücretlidir. Mobil web uygulamalarında herhangi bir kısıt yoktur ve ücret ödenmez.
  • Geliştirme Maliyeti: Geliştirme maliyeti Hibrid ve Mobil web uygulamalarında görece daha azdır.
  • Kullanıcı Arayüzü: Çok güçlü grafiksel ihtiyaçlar varsa (3D oyun..vs. ) Native tercih edilmelidir.

Sonuç olarak Hibrid, Mobil web veya Native tercih ederken ihtiyaçlar göz önünde bulundurulmalıdır. İhtiyaçtan bağımsız olarak herhangi birini diğerinden daha iyi olarak göremeyiz. Her birini seçerken firmanın ihtiyaçlarına göre tercih yapılmalıdır.

Comments are off for this post

Yaygın Hesaplama ve Algılama

Aug 01 2013 Published by under mobile, software development

Her yerde ya da yaygın hesaplama (ubiquitous or pervasive computing) konusunun temelleri 90’ların başında Mark Weiser tarafından ortaya atılan “yok olan bilgisayar” (disappearing computer) terimine dayanmaktadır ve temel olarak bilgisayarların ve hesaplamanın insanların hayatının bir parçası olarak ve onları rahatsız etmeden ve hatta onların farkında olmadan çevreleyerek, çevreleri ile etkileşimlerini arttırarak hayat kalitelerini arttırmayı amaçlamaktadır. Yaygın hesaplamının 3 temel özelliği vardır: i) görünmezlik, ii) bağlam farkındalık (kişilerin konumları, eylemleri, çevresel faktörlere göre sistemin farklılık göstermesi) , iii) yaygınlık (hesaplamaya erişimin her yerde olması). Yaygın hesaplama konusuna katkıda bulunan araştırma konuları dağıtık sistemlerden yapay zekaya uzanan konuları içermektedir. Algılama (sensing) konusu ise yaygın hesaplama sistemlerinin vazgeçilmez unsurudur. Yaygın algılama konusu ise gömülü, algılama kapasitesi olan, ve çoğunlukla kablosuz iletişim yeteneği olan, evimizdeki cihazlarda, arabamızda, cep telefonlarımızda  mevcut algılama  sistemlerini kapsamaktadır.

Yaygın Algılama konusunda çevresel destekli yaşam (ambient assisted living), akıllı ev uygulamaları, e-sağlık ve özellikle akıllı telefonları kullanarak mobil algılama sistemlerinin geliştirilmesi üzerine araştırmalar yapılmaktadır. Akıllı telefonları kullanarak katılımcılı algılama sistemlerinin geliştirilmesi (örneğin telefonlar üzerindeki mikrofonları kullanarak şehrin gürültü haritasının çıkarılması), insan eylemlerinin algılanması ve uzaktan sağlık takibi gibi konularda çalışmaktayız.

Araştırmacılar

Seçili Yayınlar

  • O. Durmaz Incel, M. Kose, C. Ersoy A Review and Taxonomy of Activity Recognition on Mobile Phones, Springer BioNanoScience Journal, Special Issue on Personal Health Systems for Well-being and Lifestyle Change, 2013.
  • H. Alemdar, H. Ertan, O. Durmaz Incel, C.Ersoy, ARAS Human Activity Datasets in Multiple Homes with Multiple Residents, Proc. of the 7th International Conference on Pervasive Computing Technologies for Healthcare, PervasiveHealth 2013, Venice, Italy, May 2013.
  • Mustafa Kose, Ozlem Durmaz Incel, Cem Ersoy, Online Human Activity Recognition on Smart Phones, Proc. of the Workshop on Mobile Sensing: From Smartphones and Wearables to Big Data (colocated with IPSN 2012), April 2012.

Referans

http://bm.gsu.edu.tr/yaygin-hesaplama-ve-algilama

Comments are off for this post

Android’de XMPP Client Geliştirme

Oct 23 2011 Published by under mobile

Android’de bir chat uygulaması yazmak isterseniz bu yazı tam da sizin için diyebilirim. Öncelikle bir chat sunucusuna ihtiyaç var. Bunun için OpenFire biçilmiş kaftan zira açık kaynak kodlu (GPL ile lisanslı), yönetimi kolay ve güvenli. Üstelik GTalk ve Facebook dahil piyasadaki chat uygulamalarının bir çoğu bu sunucuyu kullanıyor.

XMPP client geliştirmek için İlk olarak OpenFire sunucusunu bilgisayarımıza kuruyoruz.  (http://www.igniterealtime.org/projects/openfire/) Sunucuyu kurduktan sonra başlatıyoruz:

Sunucu kısmını hallettikten sonra client tarafına geçebiliriz.  XMPP client için en uygun kütüphane SMACK API. (http://www.igniterealtime.org/projects/smack/) SMACK jar’larını aldıysak Android uygulamamızı geliştirmeye başlayabiliriz.

Chat sunucusuna bağlanmak için:

Chat uygulaması icin bir login ekranına ihtiyacımız var. Android’de ekrana bileşenler ekleyip onlardan değerleri almayı bildiğinizi varsayarak bu kısmı atlıyorum. (http://developer.android.com/guide/index.html)

Login ekranından aldığımız kullanıcı ismi ve şifreyle Openfire sunucusuna bağlanmak için (login başarısız olduğunda XMPPException atar.):

Login olduktan sonra ulaşılabilir (available) olduğumuzu da sunucuya göndermemiz gerekiyor:

Eğer giriş yapan kullanıcı OpenFire sunucusunda herhangi bir gruba üye değil ise default grup yaratıyoruz:

Giriş yaptıktan sonra arkadaşlarımızı görmek için önce chat gruplarına ulaşıyoruz. (Grupları listelemek için String RosterGroup.getName() metodunu kullanabiliriz.

Grup üyesi olan kullanıcıları listelemek için:

Listelenen kullanıcıları da hallettik. Artık chat yapabilmek için yeterli altyapıya sahibiz. Chat yapmak için ChatManager sınıfına ihtiyacımız var:

Kullanıcının üzerine tıklandığında yeni bir chat başlatmamız gerekiyor. İlk parametre chat’in ismi. Yani chat yaptığınız kullanıcının ismi. İkinci parametre şimdilik önemsiz.

Chat yarattıktan sonra gelen mesajların ekranımızda görünmesi için bir Listener’a ihtiyacımız var:

Send tuşuna basıldığında yazılan mesajı göndermek için:

Chat için ihtiyacımız olan metodlar bunlar. Ancak tabii bir chat uygulamasının login olan kullanıcının bir dahaki girişinde isterse kullanıcı ismi ve/veya şifresini hatırlatma ve gönderilen mesajların history’sini kaydetme gibi özelliklerinin olması gerekmektedir. Android’de DB işlemleri için SQLite kullanıyoruz. DB yaratmak için SQLiteOpenHelper sınıfından extend eden bir sınıf yazabilir ve SQLiteDatabase sınıfıyla da scriptlerinizi çalıştırabilirsiniz. Ayrıca kullanıcının kendisinin sisteme kaydolması için de gerekli metodlar Smack API’de mevcut.

Yukarıdaki işleyişin doğru çalışması için OpenFire chat sunucusundan grup yaratmanız ve kullanıcı eklemeniz gerekmektedir. Bu işemlerin ekran çıktıları aşağıdadır:

Kullanıcı listesi: (OpenFire sunucusu admin ekranı)

Bu API ve yukarıdakilerle aşağıda ekran çıktılarını bulabileceğiniz türden bir uygulamayı çok rahat yazabilirsiniz:

Login ekranı:

Arkadaş listesi ekranı:

Konuşma penceresi:

3 responses so far