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

Telefonun Kamerasini Web Kamerası Gibi Kullanmak

Gerekli Uygulamaların Kurulması Öncelikle şu siteye giderek hem bilgisayarımız hem de telefonumuz için IRION uygulamasını indirip kuruyoruz. Daha sonra bilgisayarımız ile telefonumuzun aynı ağa bağlı olduğundan emin oluyoruz. Bu kadar. :) Artık telefonun kamerasını sanki bilgisayarımıza takılı bir webcam gibi kullanabilir ve kaliteli görüntü aktarabiliriz. Zoom uygulamasında kamera kaynağı olarak telefon kamerası (Virtual Cam) görünmüyor. Çözüm için terminal‘ı açarak aşağıdaki komut satırını yazmamız yeterli olacaktır. Yazmadan önce Zoom uygulamasını kapattığımızdan emin olalım....

May 30, 2020 · 1 min · Aykut Asil

Asp.Net Core launchSettings.json Kullanımı

launchSettings.json dosyası sadece local‘de development yaparken kullanılan bir dosyadır. Visual Studio veya dotnet cli ile birlikte kullanılır. Not: Eğer uygulamamızı sunucuyu deploy ettikten sonra ulaşmak istediğimiz ayarlar var ise bunun belirtilmesi gereken yer launchSettings.json dosyası değildir. Bu tür ayarlar genelde appSettings.json dosyası içerisinde tanımlanır. launchSettings.json dosyası { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:59119", "sslPort": 0 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "FirstCoreWebApplication": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "http://localhost:5000,https://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } Yukarıdaki dosyayı inceleyecek olursak profiles tagı altında IIS Express ve FirstCoreWebApplication tagları olduğunu görürüz....

April 17, 2020 · 2 min · Aykut Asil

Javascript Hoisting

Javascript dilinin nasıl yorumlandığı ile alakalı bir durum olan Hoisting kavramını bilmekte fayda var diye düşünüyorum. Örneğin aşağıdaki gibi bir kod yazdığımızda; console.log(username); var username = "aykuttasil"; alacağımız çıktı undefined şeklinde olur. Normal şartlarda beklediğimiz sonuç hata fırlatmasıdır. Çünkü username değişkeni tanımlanmadan önce yazdırılmaya çalışılmıştır. Ama beklediğimiz şekilde olmaz ve ekrana undefined yazılır. Peki Neden? Yukarıdaki gibi bir kod bloğu çalıştırılmadan önce javacsript tarafından hoisting işlemi uygulanır ve tüm var değişkenleri kod bloğunun(scope) en üstüne taşınır ve default olarak undefined atanır....

April 3, 2020 · 2 min · Aykut Asil

Docker Series - 1

Docker ile ilgili komut listesine erişmek için komut satırına docker --help ya da sadece docker yazabilirsiniz. docker run Docker ile ilgili bir çok temel fonksiyonu docker run komutu ile sağlayabilirsiniz. Hızlıca Docker Hub‘da bulunan bir image’i makinemize kurmak istiyorsak aşağıdaki komut işimizi görecektir. docker run ubuntu Yukarıda ki komutu yazdığınızda ilk önce ilgili image dosyasının makinenizde olup olmadığına bakılır ve sonrasında eğer varsa zaten inmiş olan image çalıştırılılr....

April 3, 2020 · 2 min · Aykut Asil

Docker Series - 2

Docker Container’ı Detach modda çalıştırmak Uygulamanızı yazarken eğer thread’ler ile biraz derin bir ilişki kurmuşsanız daemon kavramıyla karşılaşmış olabilirsiniz. Kısaca, “arka tarafa git ve sessiz sedasız çalışmaya devam et” demek diyebiliriz. Ayrıntılı bilgi için -> Google :) Aynı mantık ile container‘ımızın arka planda sesiz sedasız çalışmasını isteyebiliriz. Örneğin web sitemizi bir container’a kurduk, yerleştirdik ve belli bir port üzerinden dışarıya açtık. Ve artık bu container kapanmadan sürekli çalışması gerekiyor ki web sitemize erişebilelim....

April 3, 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

Kotlin DSL ile Json

Kotlin DSL kullanarak Json Objesi nasıl oluşturulur ? Normalde Json objesi oluşturmak için aşağıdaki gibi bir yöntem izleriz. val jsonObject = JSONObject() jsonObject.put("name","Aykut") jsonObject.put("age",20) Bunu Kotlin DSL ile çok daha ergonomik bir şekilde hazırlayabiliriz. Öncelikle Json isminde bir sınıf oluşturuyoruz ve JsonObject sınıfından kalıtım alıyoruz. Ve DSL kullanabilmek için gerekli custom constructor fonksiyonumuzu yazıyoruz. class Json() : JSONObject() { constructor(json: Json.() -> Unit) : this() { this.init() } } Json objemizi hazırlarken kolaylık olsun diye bir infix fonksiyonu ekliyoruz....

January 3, 2020 · 1 min · Aykut Asil

Asp.Net Core Session

Asp.Net Core Session Kullanımı Asp.Net Core 2.1 ve üstü sürüme sahip projelerinizde Session kullanmak için Startup.cs dosyanızı aşağıdaki yöntemlerden birini seçerek güncellemeniz gerekmektedir. Yöntem 1 Yöntem 2 Neden Asp.Net Core 2.1 ve sonrası? 2018’de uygulanması zorunlu hale gelen Avrupa Veri Koruma Kanunu ile birlikte, şirketlere kişisel verileri kullanması konusunda bazı kısıtlamalar ve uygulaması gereken bazı zorunluluklar getirilmiştir. Bu zorunluluklardan şu an için bizi ilgilendiren kısmı cookielerin kullanımı. Web siteleri cookie kullanımı için son kullanıcının onayını almak zorundadır....

November 12, 2019 · 1 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