Yeni Uygulamam [DEPREM BİLDİRİMİ]

Herkese selamlar….

Şöyle bi’ 2020nin ilk aylarına baktığımızda pek de iç açıcı girmediğimiz ortada..
En önemlisi 10 yıldan beri fay hattının durgunluğunu bozup ülkemizde ciddi derece de depremler yaşamaya başlaması…
Yakın bir sürede Aydın ve Marmara’da da büyük bir deprem beklenmekte, alacağımız önlemlerle inşallah 1 kişinin bile hayatını yitirmeden geçiririz..

Şimdi konumuza dönersek Google Play üzerinde araştırma sonucu ne yazık ki depremlerle ilgili AFAT dışında çokta güzel uygulamalar bulamadım, birinde biri varsa diğerinde yok hep bi yetersizlik..
Depremlerin şiddetli olduğu bu günlerde şöyle bir fikir geliştirdim;

1-) Uygulamaya ilk girdiğinde son 10 depremi karmaşık olmadan net bir şekilde listeleyebilmek,
2-) Uygulama kapalı olsa dahi; Türkiye gündeminden veya belirlediği illerden X büyüklüğünde bir deprem olduğunda haberdar olması/anlık bildirim (notificition) alması,
3-) Tartışmaların yapılabileceği bir sohbet paneli (kesinlikle goygoy olmadan, hislerini paylaşabilecekleri bir ortam *bizler tarafından sürekli denetlenecek),
4-) Büyük bir sarsıntı ve deniz seviyesi yüksekliğinde ani bir düşüş olduğu zaman bizim sunucumuza bildirim geçmesi ve bu durumu sağlık bildirimlerine bildirmemiz, *
5-) Büyük bir sarsıntı ve deniz seviyesi yüksekliğinde ani bir düşüşünde telefondan son ses müzik çalması. *

Genel düşüncem bu şekilde, önemli olarak 4 ve 5. maddelere baktığımızda olası bir enkaz durumunda kişinin enkaz altında efor kaybı yaşatmadan telefonundan SOS sesinin dışarıya vermesi ve depremzedenin daha kolay bir şekilde bulunması. (ani bir rakım düşüşü ve sarsıntıda uygulama bizim sunucumuza telefon numarasını kaydedecek ve bizimde sağlık ekiplerine bildirmemiz sağlanacak.)

Fikrimin çoğunu bitirmiş durumdayım bir kaç dizayn düzenlemesi yapıp paylaşacağım.

Uygulamada neler kullandın diye soracak olursanız buyrun arka planda kullanılan nugetler ve bazı hazır dizaynlar;

• Uygulama neyle yazıldı?
– Mobil ; Microsoft Xamarin.Forms
– Sunucuda ki Kandilli Rasathanesinden Veri Çekme ; Python ( https://github.com/emirkabal/deprem-api ) (fakat kısa süre içinde NET Core 3.0’a kendim bir bot yazacağım.)

• Uygulama kapalı olsa dahi bildirim alması (Android Service)
Xamarin.Android.Services ve Xamarin.Forms.MessagingCenter.Subscribe<>(); kullanımı ile Samsung ,Huwai,Vestel gibi telefonlarda 24 saat boyunca uygulama kapalı olsa dahi bildirimler alıyordum fakat Xiaomi telefonlarda uygulama kapandığı an Android.Services kapanması beni mahvetti o yüzden https://github.com/shinyorg kullanmaya karar verdim 1-2 testlerim oldu tahminlerime göre bütün telefonlarda bu sorunu bununla çözmüş olacağım. (*çözemezsem değiştirmiş olurum:p)
** Özellikle bu konu hakkında ne yazık ki Türkçe ve güncel makale bulmak çok zor bunu özel bir blog yazımda en kısa ayrıntılarına kadar anlatacağım.

• Xamarin Tasarımları Nasıl Geliştirdin?
– Tasarımları sıfırdan yapmak yerine güzel UI tasarımları geliştirmenin daha iyi fikir olduğunu düşündüm. Tasarımlarım şu 2 projeden birleştirme;
a-) https://github.com/devcrux/WeatherApp
b-) https://github.com/sthewissen/KickassUI.Banking

• Extra Kullanılan Nuget Paketleri;
– Tartışma – Mesajlaşma alanı için; SignalR
– Ekranda işleme bağlı async “Lütfen Bekleyiniz” ifadesi için; AiForms.Dialogs
– Xamarin MVVM yapısı için ; FreshMvvm
– Menünün yukarda değilde aşağıda olmasını istediğim için ; LH.BottomNavigationBar.FX
– XAML üzerinde anlık değişiklikleri görebilmem için ; LiveXAML + HotReload
– JSON verileri kullanabilmek için ; Newtonsoft.Json
– Deprem bilgisini paylaş butonları; Plugin.Share
– Kullanıcıya Notification için ; Plugin.LocalNotification **
– Bazı bölgelerde kullanıcıları yönlendirme yapmadan hızlıca pop-up göstermek için ; Rg.Plugins.Popup
– Android Jobs ve Servisler için ; Shiny.Core
– Ayarları ve kullanıcı kayıtlarını kaydetmek için database ; SQLite
– Depremin olduğu noktayı göstermek için ; Xam.Plugin.ExternalMaps
– Deprem notificationunda titreşim gönderebilmek için ; Xam.Plugins.Vibrate
– Xamarin.Android tarafında binding yapabilmek için ; Xamarin.Android.Support.Core.Utils
– Klasik vazgeçilmez pluginimiz : Xamarin.Essentials (anlatmaya gerek yok mikemmel)
– Panel ve Grid yapılarının daha güzel, göze hoş gelmesi için ; Xamarin.Forms.PancakeView

Leave a Comment