Garanti Hackathon (36 sa ding ding!)


Screen Shot 2015-11-22 at 08.38.12

İlgili web sitesinden de detaylı bilgi alabileceğiniz gibi, “Garanti Hackathon Nedir?” diye başlarsak; “Proje üretmekten zevk alan yazılımcı, tasarımcı ve girişimcilere sınırlı süre içerisinde fikirlerini ürüne dönüştürme imkanı veren Garanti Bankası’nın HACKATHON etkinliğidir.”

Benim özellikle belirtmek istediğim ise bu hackathon’un bankacılık API’larının simüle edilerek açıldığı ilk Hackathon olmasıdır. Bu nedenle de ayrı bir önem taşımaktadır. Okumaya devam et

Android Uygulama Performansı – Step 4: Battery


Uygulama performansı serisine Battery’yle devam ediyorum. Battery aslında bu seride anlatacağım son adım. Çünkü bu serinin genel olarak kapsamı android performans iyileştirmesi hakkında ve performans analizi yapabileceğimiz tool’lar hakkında genel bir bilgi sahibi olmak olarak başlanmıştı.

Mobil cihazınızın donanımı, görevleri çalıştırırken ya da kedinizin fotoğraflarını yüklerken, bu işleri gerçekleştirebilmek için bataryadan enerji çeker. Tabi buna bağlı olarak da bataryadan ne kadar güç çekileceği ve bataryanın ne kadar süreyle dayanacağı değişmektedir. Nasıl daha az batarya tüketen uygulamalar yazacağımız konusu ise arkada çalışan process’i ne kadar iyi anladığımızla ilgilidir.

Şimdi mesela bir Nexus 5 cihaz alıp airplane moda çekelim. Neredeyse hiç batarya harcamayacaktır. Cihazınız aktif olduğu sürece batarya tüketir. Aktifi tanımlamak gerekirse, CPU’nun çalıştığı işler, radio’nun data transfer etmesi, ekranın kendini uyandırması diyebiliriz.

Peki hangi görevler, daha çok batarya tüketiyor olabilir? Okumaya devam et

Android Uygulama Performansı – Step 3: Memory


Seriye Memory’le devam ediyorum. Rendering ve Compute yazılarına ilgili linklerden erişebilirsiniz.

Hardware’e yakın olarak bilinen programlama dillerinde, C, C++, Fortran gibi, genellikle yazılımcılar bellek yönetimini kendileri yaparlar. Allocating memory ve iş tamamlandığında de-allocating tamamen yazılımcılara aittir. Böyle bir durumda, tüm bellek yönetimi size kalmış olduğu için ne kadar doğru kullanıldığı da aslında tamamen yazılımcının bilgisi ve becerisine bırakılmış olur. Kabul edelim ki bu gerçekten de zordur ve çoğu yazılımcı bu gibi durumlarda hatalı kod yazabilir. Bu da memory leak’lerin oluşmasına sebep olur. Bu kaostan kurulmak için ise, managed memory dilleri icat edildi.

Bu diller runtime’da memory allocation’larını track eder ve uygulamanın kendisi tarafından uzun süre kullanılmadığını fark ettiği anda da memory’yi release eder. Tüm bunlar yazılımcının hiç bir müdahalesi olmadan gerçekleşir. Bu aslında hepimizin bildiği garbage collection‘dır.

Garbage Collection’ın temel prensipleri:

  1. İlerde erişilmeyecek olan data objesini bul. (Kod tarafından artık kullanılmayacak olan memory)
  2. Bu objeler tarafından kullanılan objeleri tasfiye et.

Okumaya devam et

Android Uygulama Performansı – Step 2: Compute


Android uygulama performansı ile ilgili seriye Compute‘le devam ediyorum. Bir önceki konu olan renderingle ilgili anlatımıma ilgili linkten erişebilirsiniz.

Precompiler’dan compiler’a, optimizer’a, kodun kendisine kadar birçok şey cihaz üzerinde çalışmaktadır. Bu yüzden de compute performansı çok önemlidir. Ki bu da aslında algoritmaların, computing process’lerinin nasıl işletildiğiyle ilgilidir. (Compiler’ın kodu generate etmesi ve virtual machine’in hardware üzerinde onu işletmesi)

Slow function performance‘la başlayalım. Siz aslında spesifik bir sorunu çözmek için bir kod parçası yazarsınız ancak sonra fark edersiniz ki kodu execute ettiğinizde tahmin ettiğinizden çok daha uzun sürer.

Kodunuzu nasıl yazdığınız, hardware’in hangi programlama dilini kullandığından silikon çiplerin nasıl yapılandırıldığına kadar bağlı olarak, performansı etkiler. Kodunuzu optimize etmek için sistemin nasıl çalıştığını anlamak zorundasınız. Screen Shot 2015-11-11 at 00.46.26

Slow function performans genelllikle iki şekilde gelir. İlk olarak, tek bir slow function form’unuz vardır. Bunun anlaşılması kolaydır. Normalde çalışmasını beklediğiniz süreye göre 2x ya da 5x süren bir fonksiyonunuz vardır. Bu durumda aslında slow function olan kodunuzu bulup, inceleyip, sorunu bulup, düzeltebilirsiniz. Okumaya devam et

Android Uygulama Performansı – Step 1: Rendering


Android uygulaması geliştiren herkes için uygulama performansı hep bir sorun olmuştur. Çünkü aslında uygulama yavaş dendiğinde, başlangıç için yapılması gereken ilk önce profiling tool’ları kullanıp veri toplamak ve sonrasında topladığımız veriyi inceleyerek sorunu tespit edip düzeltmektir. Süreç biraz can sıkıcı olmakla beraber bazen de görselliğimizi istediğimiz seviyeye çekmeye çalışırken, bazı küçük noktaları kaçırıp aslında çok da güçlü olmayan cihazlarda – ki kullanıcıları çok daha fazla- uygulamanın ekranı, bazen cihazı kitlemesine kadar sorunlara yol açabiliyoruz.

Renderingle başlayarak, bu seride basit tricklerle nasıl daha performanslı uygulama yazabiliriz, profiling tool’ları nasıl kullanabiliriz üzerinde genel bilgi vereceğim.

Step 1: Rendering

Renderingle ilgili yaşanan problemler aslında en sık yaşanan performans problemidir. Tasarımcılar, kullanıcılar için en kullanışlı deneyimi sağlayacak şekilde uygulamanın geliştirilmesini isterken aslında diğer tarafta tüm o şaşalı grafikler, animasyonlar her cihazda efektif çalışmayabilirler.

Screen Shot 2015-11-08 at 15.01.42

Okumaya devam et

DroidConUK 2015


android-kullanım-oranları-manset-scroll

Daha önce Droidcon serisini duymayanlar için Droidcon’lar Android platformunu destelemek, şirketler ve geliştiriciler arasında global bir network oluşturmak için Avrupa’da düzenlenen bir konferans serisidir. Temel olarak; mobil cihazlardan TV’ye, arabalardan oyuna, bir çok konu üzerine Android ekosistemin farklı bölümlerinden ileri seviye konuşmaları içermektedir.

Droidconlar; Amsterdam, Bangalore, Berlin, Brussels, Bucharest, Londra, Madrid, Moscow, Murcia, Paris, Stockholm, Tel Aviv, Tunis ve Turin’de yapılmakla beraber, sürekli yeni lokasyonlar da listeye katılmaktadır.

İlk iki Droidcon konferansı Android tutkunlarından oluşan uluslar arası bir ekip tarafından 2009’un sonunda Berlin ve Londra’da yapılmıştı. O günden bu yana da seri defalarca devam etmiş durumda.

Daha ayrıntılı bilgiyi linkteki adresten alabilirsiniz. Bu sene Londra’da düzenlenen konferansla devam ediyorum.

Konferans Business Design Center’da düzenlendi. Kapıda oluşan küçük bir kuyruktan sonra içeri alınmaya başladık. Her ne kadar ayırt edilemese de 4. sırada filan benim olmam lazım:) Kayıt sonrasında, networking ve standları gezmek Screen Shot 2015-11-08 at 11.41.31için için ort. yarım saatlik bir süremiz vardı. Android’in maskotunun sevimli olmasının bir faydası da düzenlenen tüm Android  etkinliklerinde dağıtılan Android’li ıvır zıvırların da aşırı eğlenceli ve sevimli olması. Tabi standları gezerken Android oyuncaklarını da pas geçmedik, marshmallowlarımızı çikolataya banıp yemeyi de:) Okumaya devam et