Pinterest tarzında instagram klonu
Mobil Uygulama Geliştirme
Öğrenci : Sahil Rzayev 399973
Proje adı : Instagram Clone
Uygulama açıklaması
Genel görüntü olarak günümüzde popüler olan Instagram uygulamasına benzetmeye çalıştım. Uygulamanın özelliklerine bakarsak sağ üst köşede paylaşım(yani resim) ekleme ve hesaptan çıkış yapma butonları yer alıyor. Alt kısımda yer alan bar’da ana sayfa ve profil güncelleme menüleri mevcut.
Tasarım olarak dikkat etdiğimizde paylaşım yapan kullanıcıların profil resimleri ve kullanıcı isimleri aynı hizada paylaştıkları fotoğrafın üzerinde yer alıyor. Fotoğrafın alt kısmında ise kullanıcının paylaşımı paylaştığı zaman ona eklediği comment yeralıyor.
Bu kısım gönderi paylaşma kısmı. Fotoğraf seçmeden upload butonuna basarsak resim seçmedik diye bize uyarı mesajı gösterecektir.
Resmi seçdikten sonra comment ekleyip eklememek kullanıcının isteğine bırakılmış(yani mecburi değil).
Upload butonun tıkladığında ana sayfaya yönlendiriliyor ve paylaşdığı fotoğraf da ana sayfada gözüküyor.
Burası kullanıcının profilini güncellediği kısım. Update butonuna basınca profilini güncelliyor ve ana sayfaya yönlendiriliyor. back - ana sayfaya dönme butonu.
Burası kullanıcınıdaha önce var olan bir hesabı yoksa kayıt olma yeri.
Burada profil fotoğrafı, kullanıcı adı, email, ve şifresini yazarak uygulamaya kayıt oluyor. Butona tıkladığı zaman eklediği resim boyutuna ve internet hızına göre belli bir süre gecikme oluyor(firebase’de storage kısmına ekleme işlemi yapılıyor bu süre çünkü) ve sonra direk ana sayfaya yönlendiriliyor.
Uygulama kodları açıklaması
Not: Uygulama kodları içinde birçok yerde yorum satırı ekledim.
Model – burada sınıflar mevcut. Adapter – adapter yer alıyor. View – Activity’ler yer alıyor.
Layout – Genel görüntü xml’leri yer alıyor
Menu
- option_menu.xml – uygulamadaki sağ üst köşedeki iconlar burada yer alıyor
- bottombar_menu.xml – uygulamada alt kısımda yer alan menü burada tanımlanıyor
- MainActivity – Giriş yapma olayı burada yapılıyor
- SignUpActivity – Kayıt olma işlemleri burada yapılıyor
- FeedActivity – Ana sayfa yani paylaşımların tümünün gözüktüğü ekran
- UpdateProfileActivity – Profil güncelleme kısmı
- UploadActivity – Paylaşım paylaşma kısmı
• PostAdapter – Gelen verileri(yani kullanıcıların paylaştığı paylaşımlar) adapter sayesinde ana ekrana aktarıyoruz.
- Post – Uygulama içinde paylaşılan paylaşımların sınıfı*
- Profile – Kullanıcı profili sınıfı
- Implementasyonlar:
- Genel olarak kullandığım yapılardan biri de View binding yapısıdır. View’larla etkileşime giren kodu daha kolay yazmamıza olanak sağlıyor. Aynı zamanda bu yapıyla fazla kod satırlarının önüne geçmiş oluyoruz. Örnek:
Not: Kod satırları çok fazla olduğu için hepsinin fotoğrafını buraya ekleyemedim. Ama birçok yerde anlaşılır olsun diye yorum satırları bıraktım.