Android SMS User Consent API Kullanımı

Problem? Android işletim sisteminin ilk versiyonlarında SMS’lere erişim oldukça kolaydı. Fakat şimdi sadece özel izne sahip uygulamalar bu izne sahip olabiliyor. Google’a bir form doldurarak ve neden SMS okuma özelliğine kesin olarak ihtiyacınız olduğunu anlatarak bu izni talep ediyorsunuz. Peki bizim amacımız tek seferlik bir SMS okumak ise yine bu süreçten geçmeli miyiz? Hayır! Google tek seferlik SMS okuması yapabilmek için çeşitli API’ler çıkardı. Bu API’lere sayfanın en altında bulunan Kaynaklar bölümünden erişebilirsiniz....

November 2, 2021 · 1 min · Aykut Asil

Android Fastlane Kurulumu

Fastlane, mobil ile ilgili neredeyse tüm süreçleri (build,test,deploy vs.) otomatize etmeye yarayan bir araçtır. Fastlane kullanarak hangi CI/CD platformunu kullanıyor olursanız olun uygulama süreçleriniz tekil hale getirebilirsiniz. Kurulum brew install fastlane Fastlane aracının kurulumunu tamamladıktan sonra, ilk olarak projenizin root klasörüne gelip fastlane init komutunu çalıştırmalısınız. Komut satırında Package Name istenildiğinde uygulamamızın package name‘ini (com.example.myapplication) giriyoruz. Diğer adımları şimdilik es geçebilirsiniz. Proje yapılandırması tamamlandığında app klasörü ile aynı seviyede fastline isimli bir klasör oluşacak....

November 4, 2020 · 2 min · Aykut Asil

Android Fastlane Screengrab Kurulumu

Fastlane kurulumunu henüz tamamlamadıysanız sizi buraya alalım. Screengrab Mobil ekran görüntüsü alımını otomatize eden bu aracın kullanımı için öncelikle aşağıdaki komut ile ilgili aracı yüklüyoruz. sudo gem install screengrab Daha sonra AndroidManifest.xml dosyasına aşağıdaki bloğu eklemeliyiz. <!-- Allows unlocking your device and activating its screen so UI tests can succeed --> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <!-- Allows for storing and retrieving screenshots --> <uses-permission android:name="android....

November 4, 2020 · 3 min · Aykut Asil

Android applicationId vs package name

Android projesi oluşturduğunuzda aşağıdaki gibi AndroidManifest.xml ve build.gradle dosyaları oluşur. AndroidManifest.xml içerisinde package tagı ve build.gradle içerisinde applicationId niteliği bulunur. Peki bu ikisi arasındaki fark nedir? package=“com.example.myapp” ile belirttiğimiz kısım aslında projemizin klasör yapısını ifade eder. Yani com > example > myapp şeklinde bir tree yapısı vardır. Ve biz proje dosyalarımızı bu dizin altında oluşturmaya başlarız. Örneğin MainActivity dosyası oluşturduğumuzda aslında bu dosyanın yolu com.example.myapp.MainActivity olur. Projemiz derlenme sırasında package değerine bakar ve dosyaları bu adrese göre bulur....

June 21, 2020 · 2 min · Aykut Asil

Android Background Location

Android 10 ile birlikte gelen değişiklerden biri de Location dinleme ile alakalıdır. Uygulamamız arka plandayken (background) ve ön plandayken (foreground) konum dinleme şekilleri farklılık göstermektedir. Uygulamımız bize görünür vaziyette ise yani foreground‘da ise her hangi bir değişiklik yapmamıza gerek yoktur. Fakat Home tuşuna basarak veya başka bir uygulama açarak uygulamamızı arka plana atıyorsak ve bu sırada konum dinlemesinin devam etmesini istiyorsak bazı düzenlemeler yapmamız gerekmektedir. İki şekilde background konum dinlemesi yapılabilir....

January 17, 2020 · 2 min · Aykut Asil

Android Debugging With Local Web Server

Fiziksel Android cihazımızla localimizde çalışan web server’a erişmek, development aşamasında eminim ihtiyaç duyduğunuz veya duyacağınız gereksinimlerden biridir. Bununla beraber local makinenizde bulunan VM üzerinde koşan web server’a erişmek.. Ah harika.. Canlı bir örnek verirsem sanıyorum daha iyi olacak. Geliştirme yaptığınız makinenizinde MacOS işletim sistemi var. Bununla beraber çeşitli ihtiyaçlarınızdan ötürü windows kurmanız gerekti ve Virtual Machine kurarak içine windows yüklediniz. Windows üzerinde Visual Studio ile bir WebApi ayağa kaldırdınız ve bu api‘ye fiziksel Android cihazınızdan erişmek istiyorsunuz....

August 3, 2019 · 2 min · Aykut Asil

ADB Komutu ile Cihaz IP'sini Öğren

Aşağıdaki komutu çalıştırarak android cihaz ip’sini öğrenebilirsiniz. > adb shell ip -f inet addr show wlan0

July 20, 2019 · 1 min · Aykut Asil

Android File System

Internal Storage vs External Storage Internal Storage Her zaman erişilebilir. Sadece uygulamanın kendisi tarafından erişebilir. Buraya kaydedilen dosyalar başka bir uygulama tarafından görünmez. USB ile bilgisayara bağlanıldığında bu dosyalara erişim sağlanamaz. Uygulama silindiğinde internal storage temizlenir. External Storage Her zaman erişilebilir durumda olmayabilir. External storage cihaza dahili olarak bulunabileceği gibi USB cihazı olarak sonradan takılmış bir cihaz da olabilir. Bu nedenle erişebilir olup olmadığı kontrol edilmelidir (getExternalStorageState()). External Storage’a kayıt edilen dosyalar başka uygulamalar tarafından okunabilir ve görülebilir durumda olabilir....

June 27, 2019 · 2 min · Aykut Asil

Android DataBinding

Android DataBinding Android dünyasında temiz kod(Clean Code) günümüzde çokça konuşulan konular arasında yer almakta ve neden temiz kod yazmalıyız ile alakalı bir çok makale yazılmaktadır. Temiz kod yazmak için MVP, MVVM vs. kod tasarım mimarilerinden birini seçerek yazılan kodların ve etkileşimlerinin birbirinden ayrımını sağlamaktayız. Bu kod tasarım kalıpları ile beraber bize çok faydası olacak bir mimari daha bulunmakta: DataBinding DataBinding Uygulamanın arayüzünü tasarlamak için kullandığımız layout dosyamızın içerisine Uygulamamızın arayüzünü oluşturmak için kullandığımız layout xml dosyalarına gerekli datayı doğrudan entegre ederek, arayüz değişikliği ile ilgili tüm akışların harici müdahaleye gerek kalmadan otomatik olarak gerçekleşmesini sağlayabiliriz....

February 25, 2019 · 4 min · Aykut Asil

Android Service

Android’in temel bileşenlerinden biri olan Service’ler kısaca UI(arayüz) olmayan Activity’lere benzetebiliriz. Tabi ki kendine göre ek özellikleri bulunmaktadır. Service tanımlaması AndroidManifest.xml içerisinde tanımlı olmalıdır. Aksi takdirde çalışmaz. <service> elementinin alabileceği özellikler aşağıdaki gibidir. Niçin kullanılır? Temel olarak ifade etmek gerekirse Service’lerin kullanım amacı uzun süren ve arka planda(background) çalışan taskler oluşturmaktır. Bununla birlikte diğer uygulamalar tarafından çağırılabilen iletişim imkanı sağlar. Service tanımlanması <service android:description="string resource" android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:isolatedProcess=["true" | "false"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ....

February 14, 2019 · 3 min · Aykut Asil