28 Ekim 2019 Pazartesi

Masraf Takibi - Gider Yönetimi Android Uygulaması

Merhabalar. Masraf Takibi & Gider Yönetimi uygulaması yayınlandı!
Google Play Store'da şuradan indirebilirsiniz!

https://play.google.com/store/apps/details?id=com.pmobile.expense
Ölçemezseniz, yönetemezsiniz!

Aylık gider kalemlerinizin takibini yapın, hesabınızı bilin!

Alışveriş fişlerinizi çöpe atmadan önce uygulamaya okutun, kategorik olarak masraf takibinizi uygulama yapsın.




Kullanım kılavuzu:

1. Alışveriş fişlerinizi veya faturalarınızı uygulamaya toplam tutarını okutun. Böylece masraf geçmişi veritabanınızı oluşturun.

2. Daha sonra soldaki menüden Rapor tuşu ile rapor ekranına gelerek günlük, haftalık, aylık veya tüm zamanlara ait masraf detaylarınızı görüntüleyin.

Dilediğiniz yeni masraf kategorileri tanımlayabilirsiniz.

Ayrıca, farklı hesapların takibini yapmak için yeni hesap ekleyebilirsiniz.

Apartman gider takibi, dernek gider takibi, site gider takibi, basit muhasebe işleri için de kullanılabilir.

OCR teknolojisini günlük ihtiyaçlara yönelik olarak kullanın.

DEMO VIDEO

21 Ağustos 2019 Çarşamba

Barkodlu Kütüphanem - Kişisel Kütüphane Yönetim Aracı - Android


https://play.google.com/store/apps/details?id=com.pmobile.kitapligim 

Arkadaşlarına ödünç verdiğin kitapları unutmaktan bıktın mı?

Hangi kitabı ve hangi arkadaşından ödünç aldığını hatırlayamıyor musun?

Ya da sadece evinizde düzenli, yönetilebilir ve sürdürülebilir bir kitaplık mı istiyorsunuz?

Bu uygulama tüm kitap yönetimi sorunlarını çözecek!

Kendi kütüphanenizi yönetin! Ödünç alınan ve ödünç verilen kitapları takip edin!

Kitapçı veya kitap satıcı mısın? Taranan kitapların fiyatını görüntülemek için bir qr code (karekod) ve barkod sistemi olarak bu uygulamayı kullanabilirsin!

Nasıl kullanılır?

Bir kitabın barkodunu tarayın, yani ISBN (uluslararası seri barkod numarası) ve aşağıdaki gibi kitap ayrıntılarını kaydedin:
* İsim
* Yazar
* Yayımcı
* Yayın Yılı
* Fiyat
* Not
* Ödünç Alındı
* Ödünç Alınan Tarih
* Ödünç Alınan Kişi
* Ödünç Verildi
* Ödünç Verme Tarihi
* Ödünç Verilen Kişi

Ardından, kitabın barkodunu tarayın.
Daha önce kaydettiğiniz tüm kitap bilgileri açılır!

Güncelleme sayfasında ödünç alınan veya ödünç verilen kitap olarak ayarlayabilirsiniz. Ardından, bu Android uygulamasında ödünç alınmış ve ödünç verilmiş kitaplara farklı özel sayfalarda göz atabilirsiniz.

İsterseniz size özel açılış fotoğrafını kişisel fotoğraflarınızla ayarlar sayfasında kişiselleştirebilirsiniz.

Verilerinizin güvenliği için, yedekleme uygulaması bu uygulamada mevcuttur.

Tüm veritabanınızı bir excel XLS dosyasına kaydederek dışa aktarabilirsiniz.
Ardından, XLS dosyasını içe aktarabilir ve bu şekilde daha önce yedeklediğiniz verileri kurtarabilirsiniz.

7 Ağustos 2019 Çarşamba

Yazılım Performans İyileştirmesi İçin 5 İpucu

Merhabalar. Üzerinde çalıştığımız projede performans iyileştirmesi ihtiyacı doğdu. Bu vesileyle birçok performans iyileştirmesi yöntemini kullanma fırsatı bulduk. Bu yazımda bu yöntemlerden bahsedeceğim.


Performansını arttırmak istediğiniz yazılımın niteliği, uygulayabileceğiniz yöntemleri de etkileyebilmektedir. Öneğin, bir web uygulamasını, çalışan sunucu sayısını arttırıp yük dengelemesi (load balance) yöntemiyle optimize edebilirsiniz. Fakat, bir masaüstü uygulamasında tek bir makineyle sınırlısınızdır. Aynı şekilde, masaüstü uygulamalarında tüm hafızayı tek bir kullanıcıya tahsis edilmiş gibi geliştirme yapabilirken, web uygulamarında aynı anda birden fazla kullanıcının isteklerine cevap bekleyeceğini göz önüne alarak hafızayı tutumlu kullanmanız gerekmektedir. İşler mobil uygulamaya geldiğinde ise, uygulamanın yiyeceği internet miktarı, kısıtlı fiziksel hafıza, güvenlik gibi bambaşka parametreleri göz önüne almalısınız. 

Burada listelenecek ipuçlarının, bu parametrelerin akılda tutularak değerlendirilmesini tavsiye ederim.
 
  1. Doğru Thread Yönetimi

    Yeni thread başlattığınız noktaları mercek altına alın. Bu alanlar O(n) bir algoritma içinde mi başlatılıyor? Yani başlatılan yeni thread sayısı n ile doğru orantılıysa, küçük sayılarda mesele olmaz iken, n sayısı arttıkça, thread içinde yapılan iş çok küçük bir iş olmasına rağmen, aşırı thread başlatılmasından dolayı işlemcinin kitlenmesine sebep olabilmektedir. 100 bin threadin bir anda başlatıldığını bir hayal edin... Böyle bir durum söz konusuysa algoritmayı her n için 1 adet thread oluşturacak şekilde güncellemeye çalışın.
  2. Veritabanı Katmanı İyileştirmesi

    İşlemci, veri kendisine ne kadar yakınsa bir işi o kadar hızlı bitirecektir. Sırasıyla önbellek, RAM, ve harici disk olmak üzere veri gittikçe işlemciden uzaklaşmaktadır. Bu nedenle performans iyileştirmesi istiyorsak verileri olabildiğince işlemciye yaklaştırmalıyız. Veritabanı işlemleri de bu bakımdan mercek altına alınması gereken yerlerin başında geliyor. Hibernate dünyasında second level cache (örn Ehcache) , daha genelde ise in memory database cache ürünleri (örn. Redis) kullanarak veriler işlemciye bir katman daha yaklaştırılabilir. Hatta uygulamanıza biraz uzaktan bakıp bir veritabanına ihtiyaç duyup duymadığını da sorgulayabilirsiniz. Aynı işlevi in-memory veri yapıları kullanarak gerçekleştirebilecekseniz komple veritabanı katmanını aradan çıkarmak büyük avantaj sağlayacaktır.
  3. Masraflı Hesaplama İşlerini Tekrarlamaktan Sakınma 

    Kodunuzun zaman yiyen hesaplama kod parçacıklarını belirleyin. Örneğin, ağır grafiksel işlemler, dosyadan veri okuma, ağır matematiksel hesaplamalar vb. Bu hesaplamaların sonucunu in-memory şekilde bir yerlerde örneğin sınıfın global bir alan değişkeninde, singleton bir cache sınıfında vb tutun. Hesaplamaların sonucu değişmediği sürece bu hesaplanmış bulunan sonucu hesaplama koduna hiç bulaşmadan dönün. Hesaplamaların sonucunun değişeceğini bildiren bir olay gerçekleştiğinde bu cache'deki değeri geçersiz kılın ve bu değer bir sonraki istendiği vakit tekrar hesaplama kodlarının çalışmasını sağlayın.

  4. Doğru Veri Yapılarını Kullanma 

    Kullandığınız dilin veri yapılarını arka planda nasıl çalıştığını akılda tutarak kullanın. Örneğin bir LinkedList üzerinde for ile gezerken her seferinde get(index) metoduyla veriyi çağırırsanız, her item getirme O(n) maliyetinde olacaktır. Çünkü LinkedList üzerinde n. item'a kadar tek tek gezmesi gerekecektir. Başka bir örnek de, bir hesaplama sonucu itemlerı bir koleksiyonda toplayıp sonra bu koleksiyon üzerinde dolaşılacaksa, koleksiyonda itemların tekrarlanmasını engellemek, en fazla bir kez yer almasını sağlamak için Set türünden bir koleksiyon kullanılması faydalı olacaktır.

  5. Masraflı İşleri Başka Thread'lere Atama

    Buna tembel hesaplama yöntemi diyebiliriz. Program akışımızda bizi yavaşlatan bir işlem var ise, bu işlem olabildiğince akış threadinden kaldırılıp başka threadlerin sorunu haline getirilmelidir. Örneğin, bir veri yapısından bir itemın silinmesi işlemi pahalı ise, item'ı "silindi" şeklinde işaretleyip yola devam etmeli, başka bir threadin de asenkron olarak "silindi" işaretli itemları gerçekten veri yapısından silmesi sağlanmalıdır.

    Sizlerin de performans iyileştirmesi için kullandığınız yöntemler var ise yorum olarak eklerseniz çok sevinirim.

5 Ağustos 2019 Pazartesi

Karekodlu Müşteri Takip Programı Uygulaması Yayınlandı

https://play.google.com/store/apps/details?id=com.pmobile.musteritakip


Müşterileriniz için qr kod veya barkodlarını kaydedin ve tarayın.
Tüm müşterilerinizi cep telefonunuzdan yönetin.
İhtiyacınız olan tüm müşteri bilgilerini (ad soyad, telefon, adres, ücret, serbest not alanı) kaydedin.
Veritabanınızı XLS excel dosyalarına dışa / dışa aktarın. Bu sayede yedekleme yapın!

Eğer bir barkod veya karekod etiket yazıcınız var ise bu uygulamayı seveceksiniz.
Müşterileriniz için etiket yazıcınız aracılığıyla birer barkod veya karekod etiket yazdırın.
Tüm müşterilerinizin verilerini cebinizden yönetin.

Mobil Android müşteri takip uygulamasını Google Play Store'dan indirebilirsiniz.

Masraf Takibi - Gider Yönetimi Android Uygulaması

Merhabalar. Masraf Takibi & Gider Yönetimi uygulaması yayınlandı! Google Play Store'da şuradan indirebilirsiniz! Ölçemezseniz, ...