Social Connect
Tek uygulamada sekiz ayrı tanışma platformu, canlı yayın, görüntülü görüşme ve oyunlar.
- iOS
- Android
- 2023
- Kendi ürünüm
Ekran görüntüleri
Büyütmek için bir görsele tıklayın.
Uygulama hakkında
Social Connect bir tanışma uygulamasıydı, ama alışıldık bir tanışma uygulamasından farklı olarak sekiz ayrı platformu tek çatı altında topluyordu: anonim sohbet, harita üzerinden keşif, kaydırmalı eşleşme, dil pratiği, hikâyeler, yetişkin platformu ve uygulama içinde yayıncı olup gelir elde etme.
Bunların üzerine canlı yayın altyapısı, sesli ve görüntülü görüşme, gerçek zamanlı sohbet, hediye ekonomisi, canlı bilgi yarışmaları ve ödüllü oyunlar geliyordu. Ürünün tamamını — mimari, geliştirme, arka uç ve mağaza yayını — tek başıma yürüttüm.
2023 projesi; yani yapay zekâ destekli kodlama araçları yaygınlaşmadan önce yazıldı. Bugün geriye dönüp baktığımda, tek bir üründe bu kadar farklı alt sistemi bir arada tutmak bana en çok şeyi öğreten iş oldu.
Uygulama bugün mağazalarda değil ve sebebi tek bir şey değildi. Görüntülü görüşmeyi kendi sunucumda barındırdığım için altyapı gideri sürekli akan bir masraftı; sekiz ayrı platformun her biri ayrı bakım istiyordu ve hepsini tek başıma çevirmek bir noktadan sonra mümkün olmadı. Buna mağaza kuralları tarafında çıkan sorunlar eklenince uygulamayı kendim kaldırdım. Teknik taraf çalışıyordu; beni durduran şey, bu ölçekteki bir sistemi tek kişiyle ayakta tutmanın maliyetiydi. Sunucu maliyetini ürünün gelirine göre hesaplamayı burada öğrendim.
Öne çıkan özellikler
- Sekiz ayrı platform: anonim sohbet, harita keşfi, kaydırmalı eşleşme, dil pratiği, hikâyeler, +18 platformu, yayıncılık
- Canlı yayın: yayın açma, izleme, canlı yorum ve yayıncı olarak gelir elde etme
- Sesli ve görüntülü görüşme — JitsiMeet altyapısı üzerine kuruldu
- Anlık mesaj çevirisi: gelen mesajı istediği dile çevirebilme
- Hediye ekonomisi: yayıncılara ve kullanıcılara sanal hediye gönderimi
- Zengin mesajlaşma: yanıtlama, GIPHY üzerinden GIF, fotoğraf, video ve ses gönderimi
- Spotify entegrasyonu: profilde ve sohbette müzik paylaşımı
- Fotoğraf ve video düzenleyici uygulama içinde
- Anonim hikâye paylaşımı
- Oyunlar: çevrimiçi ve çevrimdışı oyunlar, ödüllü oyunlar, canlı bilgi yarışmaları
- Konum tabanlı keşif — harita üzerinde çevredeki kişileri bulma
- Uygulama içi satın alma ve abonelik altyapısı
Kullanılan teknolojiler
112 teknoloji · 12 başlıkDiller ve Uygulama Katmanı
- Swift (iOS)
- Java (Android)
- Kotlin (Android)
- UIKit / SwiftUI
- XML layout / Jetpack Compose
- MVC / MVVM mimarisi
- GCD / Kotlin Coroutines
Arka Uç ve Veri
- Firebase Firestore
- Gerçek zamanlı dinleyiciler
- Firestore güvenlik kuralları
- Firebase Storage
- Cloud Functions
- Firebase Messaging + APNs
- Kimlik doğrulama ve oturum
- Firestore çevrimdışı önbelleği
- Batch write
- İmleç tabanlı sayfalama
- Denormalizasyon
- Sayaç alanları
- Cloud Functions tetikleyicileri
- Zamanlanmış görevler
- Veri geçişi (migration)
Gerçek Zamanlı ve Görüşme
- JitsiMeet SDK
- WebRTC
- Kendi sunucusunda Jitsi (DigitalOcean)
- Canlı yayın akışı
- Kamera ve mikrofon izinleri
- AVAudioSession / ses yönetimi
- Oyun durumu senkronizasyonu
- STUN / TURN yapılandırması
- Ses yönlendirme (hoparlör / kulaklık)
- Arka planda çağrı sürdürme
- Ağ düşüşünde yeniden bağlanma
- Çağrı durumu senkronizasyonu
- Sunucu kaynak ve ölçek takibi
Medya ve İçerik Üretimi
- AVFoundation (iOS)
- Android kamera / MediaCodec
- PHPicker / medya seçici
- Görüntü işleme (Core Image)
- Video kırpma ve dışa aktarma
- Ses kaydı ve oynatma
- Video oynatıcı entegrasyonu
- Görsel ve video önbellekleme
Servis Entegrasyonları
- Spotify API
- GIPHY API
- Çeviri API entegrasyonu
- OAuth yetkilendirme
- URLSession (iOS)
- REST / JSON işleme
Konum ve Harita
- Core Location (iOS)
- MapKit (iOS)
- Google Maps SDK (Android)
- FusedLocationProvider (Android)
- Konum izni akışları
- Coğrafi yakınlık sorguları
Ödeme ve Gelir
- StoreKit (iOS)
- Google Play Billing (Android)
- Abonelik yönetimi
- Sunucu tarafı makbuz doğrulama
- Sanal jeton ekonomisi
- Yayıncı gelir paylaşımı
Ağ ve Veri Aktarımı
- HTTP istemcisi (Android)
- JSON çözümleme (Codable)
- Yeniden deneme ve zaman aşımı
- Çevrimdışı durum yönetimi
- Görsel önbellekleme
- İndirme ve yükleme kuyruğu
- Çok parçalı dosya yükleme
- Bant genişliğine göre kalite
Güvenlik ve Gizlilik
- Keychain (iOS)
- EncryptedSharedPreferences (Android)
- HTTPS ve ATS
- Kimlik doğrulama token yönetimi
- Oturum yenileme
- İzin gerekçe metinleri
- Hesap silme akışı
- Sunucu taraflı yetki kontrolü
- Hassas veri maskeleme
Arayüz Durumları ve Erişilebilirlik
- Koyu tema desteği
- Dinamik yazı tipi
- Güvenli alan (SafeArea)
- Boş / yükleniyor / hata durumları
- İskelet (skeleton) yükleme
- Çekerek yenileme
- Klavye ve odak yönetimi
- Derin bağlantı (Universal Links)
- VoiceOver / TalkBack etiketleri
Test, Hata Ayıklama ve Ölçüm
- Xcode Instruments
- Android Profiler
- LLDB
- Logcat
- Bellek sızıntısı takibi
- Ağ trafiği inceleme
- Çökme raporu okuma
- Gerçek cihazda test
- Farklı ekran boyutu testi
Araçlar ve Yayın Süreci
- Xcode
- Android Studio
- CocoaPods
- Gradle
- Git
- App Store Connect
- Google Play Console
- Açık kaynak kütüphaneler (GitHub)
- TestFlight
- Play Console iç test
- Sürüm ve build numaralama
- İmzalama ve provizyon profilleri
- App Store inceleme süreci
- App Privacy / Data Safety formu
- Mağaza görselleri ve ASO metinleri
- Uygulama boyutu optimizasyonu
Fikir, tasarım, arayüz, kod, mağaza yayını ve yayın sonrası bakım — sürecin tamamını baştan sona tek başıma yürüttüm. Ekip, ajans ya da dış kaynak yok.
Geliştirme notları
- Diller ve yaklaşımiOS tarafı Swift, Android tarafı Java ve Kotlin ile yazıldı. Çapraz platform bir çatı kullanılmadı; her iki uygulama da kendi platformunun yerel araçlarıyla geliştirildi. 2020'den beri mobil geliştiriyorum.
- Yapay zekâ desteği yokKodun tamamı elle yazıldı. Bu proje, Claude Code ve Codex gibi yapay zekâ kodlama araçları yaygınlaşmadan önce geliştirildi — o dönemde böyle bir araç yoktu.
- BağımlılıklarÇok sayıda açık kaynak GitHub kütüphanesi ve CocoaPods paketi kullanıldı. Bağımlılık yönetimi iOS tarafında CocoaPods, Android tarafında Gradle ile yürütüldü.
- Görüntülü görüşme altyapısıJitsiMeet hazır bir servis olarak değil, kendi sunucumda barındırıldı (DigitalOcean). Sunucu kurulumu, medya akışı ve ölçeklendirme tarafı bana aitti.
- ÖlçekSekiz ayrı platform, canlı yayın, görüntülü görüşme ve oyunlar tek uygulamada. Bu kadar farklı alt sistemi aynı kod tabanında ayakta tutmak bana en çok şeyi öğreten iş oldu.
- Test ve hata ayıklamaGerçek cihazlarda, farklı ekran boyutlarında ve zayıf ağ koşullarında test edildi. Yayın sonrası çökme raporları okunup düzeltmeler sürüm sürüm gönderildi.
- Yayın süreciHer iki mağazanın inceleme sürecini de tek başıma yürüttüm: App Store Connect ve Google Play Console kurulumu, gizlilik bildirimi (App Privacy / Data Safety), sürüm notları, mağaza görselleri ve red gerekçelerine göre düzeltmeler.
- Ürün sahipliğiFikir, tasarım, geliştirme, arka uç, mağaza yayını ve yayın sonrası bakım — sürecin tamamını tek başıma yürüttüm.
Social Connect hakkında konuşalım
Teknik detayları, karşılaştığım sorunları ve nasıl çözdüğümü memnuniyetle anlatırım.