Referansını seç, pozunu yakala.
Beğendiğin bir pozu referans al, kamera üzerinde hizalan ve kendi kareni oluştur.
PoseMatch, kullanıcıların beğendikleri bir fotoğrafı veya pozu kendi fotoğraflarında daha kolay yeniden oluşturabilmeleri için geliştirilmiş bir mobil uygulamadır.
Pinterest, Instagram veya galerinde gördüğün bir fotoğrafı yeniden çekmek istediğinde en büyük problemlerden biri doğru pozisyonu, açıyı ve kadrajı yakalamaktır.
PoseMatch bu süreci basitleştirir.
Kullanıcı galeriden bir referans fotoğraf seçer ve bu görüntü kamera ekranının üzerinde ayarlanabilir bir katman olarak gösterilir. Böylece fotoğraf çekilirken referans görüntü ile kamera görüntüsü aynı anda görülebilir.
Temel kullanım akışı:
Referansını Seç → Pozla Hizalan → Fotoğrafını Çek → Kaydet & Paylaş
Galerindeki herhangi bir fotoğrafı referans olarak kullanabilirsin.
Referans görüntü, çekmek istediğin pozun veya kompozisyonun temelini oluşturur.
Seçilen referans fotoğraf kamera ekranının üzerinde gösterilir.
Bu sayede:
Referans görüntünün görünürlüğü kamera ekranındaki slider üzerinden ayarlanabilir.
Düşük opaklıkta kamera görüntüsü daha belirgin olurken yüksek opaklıkta referans görüntü daha görünür hale gelir.
Bu özellik özellikle hassas poz ve kadraj eşleştirmelerinde yardımcı olur.
Kullanıcı çekim sırasında ön ve arka kamera arasında geçiş yapabilir.
Böylece PoseMatch hem:
kullanılabilir.
Poz ve kadraj hazır olduğunda fotoğraf doğrudan PoseMatch kamera ekranından çekilebilir.
Referans görüntü yalnızca hizalama amacıyla kullanılır ve çekilen gerçek fotoğrafın üzerine eklenmez.
Çekilen fotoğraf cihaz galerisine kaydedilebilir.
Böylece oluşturulan kare daha sonra düzenlenebilir, paylaşılabilir veya tekrar kullanılabilir.
Çekilen fotoğraflar cihazın paylaşım seçenekleri kullanılarak diğer uygulamalarla paylaşılabilir.
Beğendiğin referans pozları favorilerine ekleyerek daha sonra hızlı şekilde tekrar ulaşabilirsin.
Kendi eklediğin referans fotoğrafları Pozlarım bölümünde görüntüleyebilirsin.
Böylece sık kullandığın pozları tekrar tekrar galeriden seçmek zorunda kalmazsın.
Sosyal medyada gördüğümüz bir fotoğrafı yeniden oluşturmak çoğu zaman düşündüğümüzden daha zordur.
Fotoğrafı çeken kişiye:
“Biraz daha aşağıdan çek.”
“Ben fotoğraftaki kişiyle aynı yerde miyim?”
“Telefonu biraz sağa kaydır.”
“Fotoğraftaki açı böyle değildi.”
gibi yönlendirmeler yapmak gerekebilir.
Referans fotoğraf ile kamera görüntüsü ayrı ayrı görüntülendiğinde doğru kompozisyonu yakalamak da zorlaşır.
PoseMatch, referans görüntüyü doğrudan kamera deneyiminin bir parçası haline getirerek bu problemi çözmeyi amaçlar.
Galerinden yeniden oluşturmak istediğin fotoğrafı seç.
Referans görüntü kamera ekranında bir overlay olarak görüntülenir.
Kendini veya fotoğrafı çekilecek kişiyi referans görüntüyle hizala.
Gerekirse referans görüntünün opaklığını değiştir.
Kadraj hazır olduğunda fotoğrafı çek.
Oluşturduğun kareyi galerine kaydet veya doğrudan paylaş.
Splash
│
▼
Onboarding
│
▼
Ana Sayfa
│
├── Önerilen Pozlar
│
├── Pozlarım
│
├── Favoriler
│
└── Poz Ekle
│
▼
Referans Seç
│
▼
Kamera
│
├── Referans Overlay
├── Opaklık Ayarı
├── Kamera Değiştir
└── Fotoğraf Çek
│
▼
Fotoğraf Önizleme
│
├── Kaydet
├── Paylaş
└── Yeniden Çek
PoseMatch geliştirilirken kod tabanının büyüyebilmesi ve özelliklerin birbirinden bağımsız yönetilebilmesi amacıyla feature-first ve Clean Architecture prensiplerinden yararlanan bir yapı tercih edilmiştir.
Temel katmanlar:
lib/
│
├── app/
│ ├── router/
│ ├── theme/
│ └── transitions/
│
├── core/
│ ├── constants/
│ ├── services/
│ ├── utils/
│ └── widgets/
│
└── features/
├── splash/
├── onboarding/
├── home/
├── favorites/
├── poses/
├── camera/
└── settings/
Her feature ihtiyaçlarına göre kendi:
data/
domain/
presentation/
katmanlarını içerebilir.
Bu yaklaşım sayesinde UI, iş mantığı ve veri erişim süreçlerinin birbirinden ayrılması hedeflenmektedir.
Uygulamada state yönetimi için:
Provider + ChangeNotifier
yaklaşımı kullanılmaktadır.
Feature bazlı store yapısı sayesinde ekran durumları merkezi fakat birbirinden bağımsız şekilde yönetilebilir.
Örnekler:
HomeBannerStore
PoseStore
CameraStore
CapturedPhotoStore
Store’lar aşağıdaki durumların yönetilmesinden sorumludur:
Bağımlılıkların yönetimi için GetIt kullanılmaktadır.
Repository, data source, use case ve store bağımlılıkları merkezi dependency injection yapısı üzerinden oluşturulur.
Bu yaklaşım:
Sayfa yönlendirmeleri için go_router kullanılmaktadır.
Uygulama içerisinde:
router üzerinden yönetilmektedir.
| Teknoloji | Kullanım |
|---|---|
| Flutter | Mobil uygulama geliştirme |
| Dart | Ana programlama dili |
| Provider | State management |
| ChangeNotifier | Feature state yönetimi |
| GetIt | Dependency injection |
| go_router | Navigation |
| camera | Kamera işlemleri |
| image_picker | Galeriden fotoğraf seçimi |
| share_plus | Fotoğraf paylaşımı |
| shared_preferences | Lokal kullanıcı tercihleri |
| flutter_svg | SVG asset kullanımı |
| google_fonts | Typography |
| Material 3 | UI tasarım sistemi |
pose_match/
│
├── android/
├── ios/
├── assets/
│ ├── images/
│ │ ├── banner/
│ │ ├── onboarding/
│ │ └── poses/
│ └── icons/
│
├── lib/
│ ├── app/
│ ├── core/
│ ├── features/
│ └── main.dart
│
├── test/
├── pubspec.yaml
└── README.md
PoseMatch’in arayüzünde sade ve fotoğraf odaklı bir tasarım dili kullanılmaktadır.
Ana tasarım yaklaşımı:
Amaç, kullanıcının dikkatini uygulamanın arayüzünden çok oluşturmak istediği fotoğrafa ve poza yönlendirmektir.
Projeyi bilgisayarınıza klonlayın:
git clone <repository-url>
Proje klasörüne geçin:
cd pose_match
Flutter paketlerini yükleyin:
flutter pub get
Bağlı cihazları kontrol edin:
flutter devices
Projeyi çalıştırın:
flutter run
Projeyi geliştirmek veya çalıştırmak için:
Flutter SDK
Dart SDK
Android Studio veya VS Code
Android SDK
Xcode (iOS geliştirme için)
Fiziksel Android/iOS cihaz veya Emulator
gereklidir.
Kamera özelliklerinin test edilmesi için fiziksel cihaz kullanılması önerilir.
PoseMatch’in temel özelliklerinin çalışabilmesi için platforma bağlı olarak bazı cihaz izinlerine ihtiyaç duyulabilir.
Başlıca izinler:
İzinler yalnızca ilgili özelliklerin çalışması amacıyla kullanılmalıdır.
PoseMatch’in temel çalışma mantığı cihaz üzerinde gerçekleşecek şekilde tasarlanmıştır.
Referans fotoğraflar ve çekilen fotoğraflar uygulamanın temel işlevlerini gerçekleştirmek için kullanılır.
Uygulamanın gizlilik yaklaşımının temel amacı:
Kullanıcının fotoğrafları üzerinde kontrolün kullanıcıda kalmasıdır.
PoseMatch’in ilerleyen sürümlerinde uygulamanın temel referans-overlay deneyiminin geliştirilmesi planlanmaktadır.
Potansiyel geliştirmeler arasında:
yer almaktadır.
PoseMatch öncelikli olarak mobil cihazlar için geliştirilmektedir.
Android ✓
iOS Planned / In Development
Web —
Desktop —
PoseMatch’in amacı yalnızca bir kamera uygulaması olmak değildir.
Uygulamanın temel fikri:
Bir referans fotoğrafı, çekim sırasında aktif bir kompozisyon rehberine dönüştürmek.
Böylece kullanıcı gördüğü bir fotoğrafı yalnızca hatırlamaya çalışmak yerine referans görüntüyü doğrudan çekim sürecinin içerisinde kullanabilir.
Match the Pose. Capture the Shot.
Referansını seç, pozunu yakala.
Bu proje şu anda geliştirme aşamasındadır.
Tüm hakları saklıdır.
Proje kaynak kodunun izinsiz olarak kopyalanması, dağıtılması veya ticari amaçlarla kullanılması yasaktır.
PoseMatch
Referansını seç, pozunu yakala.