Ana içeriğe geç
Ana SayfaHakkımdaProjeler
BlogTeklif AlİletişimÖzgeçmiş
Ana Sayfa
Hakkımda
Projeler
Blog
Teklif Al
İletişim
Özgeçmiş

İçerik

KarşılaştırmalarKaynaklarOkuma Listesi

Araçlar

Kod SnippetsAraç KutusuDashboard

Etkileşim

Bilgi YarışmasıPlaygroundDuvar Kağıtları

Ben

/uses/nowGitHubBaşarımlar

Site

ChangelogStatusColophonCredits
  1. Ana Sayfa
  2. /
  3. Projeler
  4. /
  5. Plak Koleksiyon
Müzik & Koleksiyon

Plak Koleksiyon

Vinil Plak Koleksiyon Yöneticisi

9:41
P

Kullanıcı

İndirme

4.6(190+ değerlendirme)

App Store Puanı

6 ay

Geliştirme Süresi

Proje Hakkında

Plak Koleksiyon, vinil plak tutkunları için tasarlanmış profesyonel bir koleksiyon yönetim aracıdır. Kullanıcılar ellerindeki plakları barkod tarayarak veya kapak fotoğrafı çekerek anında kataloglarına ekleyebilir, koleksiyonlarının güncel piyasa değerini takip edebilir ve diğer koleksiyoncularla takas yapabilirler. Uygulamanın en güçlü özelliği, Discogs API entegrasyonu ile 15 milyondan fazla kayıtlı plağa erişim sağlamasıdır. Barkod tarama ile saniyeler içinde plak bilgileri (sanatçı, albüm, yıl, label, katalog numarası, format) otomatik olarak doldurulur. Barkodu olmayan plaklar için kapak fotoğrafı ile görsel arama yapılabilir. Koleksiyon değer takibi modülü, Discogs marketplace verilerini kullanarak her plağın güncel piyasa değerini hesaplar. Minimum, medyan ve maksimum satış fiyatları, plağın durumuna (Mint, Near Mint, VG+, VG, G+, G, Fair, Poor) göre ayrı ayrı gösterilir. Koleksiyonun toplam değeri ve değer değişimi grafikleri ile yatırım performansı izlenebilir. Wishlist özelliği, aranılan plaklar için fiyat alarmı kurulmasını sağlar. Belirli bir plağın fiyatı kullanıcının belirlediği eşiğin altına düştüğünde push notification gönderilir. Ayrıca yakın çevredeki plakçılarda aranan plakların stok durumu takip edilebilir. Sosyal platform özellikleri arasında koleksiyon paylaşımı, takas teklifi gönderme, koleksiyoncu profilleri ve müzik zevki uyumu analizi bulunur. Kullanıcılar koleksiyonlarını herkese açık veya gizli tutabilir ve sadece seçtikleri plakları paylaşabilirler.

Özellikler

✦ Barkod tarama ile anlık plak tanıma (Discogs 15M+ veritabanı)
✦ Kapak fotoğrafı ile görsel plak arama ve tanımlama
✦ Gerçek zamanlı koleksiyon değer takibi ve yatırım grafiği
✦ Plak durumu derecelendirme sistemi (Goldmine standardı)
✦ Wishlist ve fiyat düşüş alarmı bildirimleri
✦ Koleksiyoncular arası takas platformu ve mesajlaşma
✦ Detaylı istatistikler: türe, yıla, label'a göre dağılım
✦ Plak raf fotoğrafı ile toplu kataloglama (AI tarama)
✦ Offline koleksiyon erişimi ve senkronizasyon
✦ Apple Music entegrasyonu ile dijital dinleme

Süreç

  1. Keşif
  2. Tasarım
  3. Geliştirme
  4. Test
  5. Yayın

Zorluklar & Çözümler

Zorluk

Discogs API'nin rate limiting politikası projenin en büyük teknik zorluğuydu. Authenticated istekler için dakikada 60, unauthenticated için 25 istek sınırı var. Bir koleksiyoncunun yüzlerce plağı olduğunu düşünürsek, ilk kataloglama sırasında bu limitler hızla aşılabilir. Ayrıca API yanıt süreleri değişken olup, zaman zaman 5 saniyeyi aşabiliyordu. Plak durumu değerlendirmesi subjektif bir alan. Goldmine grading standardı referans alınsa da, 'Near Mint' ile 'VG+' arasındaki fark deneyimli koleksiyoncular arasında bile tartışmalıdır. Bu subjektifliğin uygulama içi değer hesaplamalarına etkisini minimize etmek gerekiyordu. Barkodu olmayan veya hasarlı barkodlu plaklar için alternatif tanıma yöntemleri geliştirilmesi gerekti. Özellikle 1970'ler ve öncesi pressler çoğunlukla barkod taşımaz. Kapak fotoğrafı ile arama, düşük ışık koşulları ve yıpranmış kapaklar nedeniyle zorlaşıyordu. Takas platformunda güven ve güvenlik kritik bir sorundu. Koleksiyoncuların birbirlerine değerli plaklar göndermesi, dolandırıcılık riskini beraberinde getiriyordu. Plak durumunun fotoğrafla doğrulanması, itibar sistemi ve anlaşmazlık çözüm mekanizması tasarlanması gerekiyordu.

Çözüm

API rate limiting için çok katmanlı cache ve kuyruk sistemi tasarlandı. İlk katmanda Core Data üzerinde tam metin aramalı yerel veritabanı tutulur. Daha önce sorgulanan plaklar API'ye gitmeden cache'den döner. İkinci katmanda, bekleyen API istekleri FIFO kuyruğunda sıralanır ve rate limit'e uygun aralıklarla gönderilir. Toplu kataloglama için batch import modu geliştirildi: kullanıcı tüm barkodları tarar, uygulama arka planda kuyruğu işler. Plak durumu değerlendirmesini standardize etmek için interaktif grading wizard tasarlandı. Kullanıcıya 5 aşamalı bir kontrol listesi sunulur: yüzey durumu, kapak durumu, iç kılıf, label durumu ve çalma testi. Her aşamada referans fotoğraflarla karşılaştırma yapılır. Sonuçta Goldmine standardına uygun bir grade otomatik hesaplanır. Barkodu olmayan plaklar için Vision framework tabanlı OCR + görsel arama pipeline'ı geliştirildi. Kapak üzerindeki sanatçı adı ve albüm ismi OCR ile okunur, Discogs text search'e gönderilir. Eşzamanlı olarak kapak görseli feature extraction ile Discogs görsel veritabanında aranır. İki sonuç birleştirilerek en olası eşleşme sunulur. Takas platformu için üç aşamalı güven sistemi kuruldu: profil doğrulama (telefon + kimlik), plak durumu fotoğraf doğrulama (detaylı çekim rehberi + zaman damgası) ve escrow benzeri 'güvenli takas' modu. Takas tamamlanana kadar her iki tarafın onayı beklenir. İtibar puanı tamamlanan takas sayısı ve karşı taraf değerlendirmelerine göre hesaplanır.

Teknik Detaylar

Uygulama mimarisi MVVM + Repository Pattern üzerine inşa edilmiştir. Repository katmanı, Discogs API ve Core Data arasında tek bir arayüz sunar. Network katmanı URLSession tabanlı olup, otomatik retry, exponential backoff ve rate limit yönetimi içerir. Barkod tarama AVFoundation AVCaptureSession kullanılarak gerçek zamanlı yapılır. AVCaptureMetadataOutput ile EAN-13, UPC-A ve UPC-E formatları desteklenir. Tarama başarılı olduğunda haptic feedback tetiklenir ve sonuç Discogs barcode endpoint'ine gönderilir. Görsel arama pipeline'ı iki aşamalıdır. Vision VNRecognizeTextRequest ile kapak üzerindeki metinler OCR ile çıkarılır. Eşzamanlı olarak VNFeaturePrintObservation ile görsel parmak izi oluşturulur. Her iki veri Discogs search API'sine paralel gönderilir ve sonuçlar confidence score'a göre birleştirilir. Veri katmanında Core Data + CloudKit entegrasyonu kullanılmıştır. Plak kayıtları, koleksiyonlar, wishlist ve takas geçmişi iCloud üzerinden senkronize olur. Core Data modeli normalize edilmiş yapıdadır: Album, Artist, Label, Release ve UserRecord entity'leri ilişkisel olarak bağlıdır. Değer takibi modülü, Discogs marketplace API'sinden satış verilerini çeker. Her plağın son 12 aydaki satış geçmişi cache'lenir ve Charts framework ile trend grafikleri oluşturulur. Koleksiyonun toplam değeri, plak durumu ağırlıklı medyan fiyat üzerinden hesaplanır. StoreKit 2 ile freemium model uygulanmıştır. Ücretsiz katmanda 50 plak sınırı vardır. Premium abonelik sınırsız plak, değer takibi, takas platformu ve istatistik erişimi sunar. Subscription status RevenueCat ile yönetilir ve receipt validation server-side yapılır. Apple Music MusicKit entegrasyonu ile koleksiyondaki plakların dijital versiyonları tek dokunuşla çalınabilir. MusicCatalogSearchRequest ile albüm eşleştirmesi yapılır ve MusicPlayer ile inline playback sağlanır.

Araştırma Notları

Vinil plak pazarı, dijital müzik çağında şaşırtıcı bir geri dönüş yaşıyor. Global vinil satışları 2023'te $1.8 milyar'a ulaştı ve son 17 yıldır kesintisiz büyüme gösteriyor. Türkiye'de vinil satışları son 5 yılda %240 arttı. İstanbul, Ankara ve İzmir'de yeni plakçı dükkânları açılıyor. Mevcut koleksiyon uygulamaları incelendiğinde, Discogs'un kendi mobil uygulaması temel işlevsellik sunuyor ancak UX kalitesi düşük ve offline desteği yok. VinylHub dükkân bulma odaklı. CLZ Music kapsamlı ancak pahalı ve Türkçe desteği yok. Bu boşluk, modern UI/UX'e sahip Türkçe bir uygulama için fırsat sunuyordu. Goldmine grading standardı, 1970'lerden beri plak koleksiyoncuları arasında kabul görmüş evrensel bir derecelendirme sistemi. 8 kademe (Mint'ten Poor'a) ile plağın fiziksel durumunu standart bir dille ifade eder. Uygulamamızda bu standardı interaktif bir wizard'a dönüştürerek erişilebilir hale getirdik. Discogs API, 15 milyondan fazla release kaydı ile dünyanın en kapsamlı müzik veritabanı. RESTful API, OAuth 1.0a authentication, JSON response format. Rate limit: 60 req/min (auth), 25 req/min (unauth). Marketplace verileri ile fiyat takibi mümkün. Hedef kitle analizi: Türkiye'de tahmini 150.000-200.000 aktif vinil koleksiyoncu. Yaş ortalaması 30-50, erkek ağırlıklı (%72). Koleksiyon büyüklüğü ortalaması 80-150 plak. En popüler türler: Rock (%35), Jazz (%18), Türk Sanat Müziği (%15), Elektronik (%12).

Tasarım Süreci

Tasarım sürecinin başlangıcında 8 aktif vinil koleksiyoncusu ile kullanıcı araştırması yapıldı. Koleksiyoncuların fiziksel alışkanlıkları gözlemlendi: plakları nasıl sakladıkları, nasıl katalogladıkları, değer araştırmasını nasıl yaptıkları incelendi. Ortak acı noktası: 'Excel'de veya kağıtta tuttuğum listeyi güncel tutamıyorum, plak fuarında elimde ne var ne yok hatırlayamıyorum.' Görsel kimlik, vintage müzik estetiğinden ilham aldı: sıcak amber (#f59e0b) ana renk, plak siyahı ve iç kılıf beyazı tamamlayıcı renkler. Tipografi için müzik endüstrisinin ikonik yazı tiplerinden esinlenildi. Karanlık tema, vinil atmosferini dijital ortama taşıyor. Kataloglama akışı, hız odaklı tasarlandı. Kullanıcı plak fuarında hızlıca tarama yapabilmeli. Barkod tarama → otomatik tanıma → tek dokunuşla ekleme akışı 3 saniyeden kısa. Toplu tarama modu ile art arda barkod okutulabilir, detaylar sonra düzenlenebilir. Koleksiyon görüntüleme için üç mod sunulur: grid (kapak görselleri), liste (detaylı bilgi) ve raf (gerçekçi 3D plak rafı simülasyonu). Raf modu SceneKit ile render edilir ve kullanıcıya fiziksel koleksiyon deneyimini dijitale taşıma hissi verir. Değer takibi dashboard'u, finansal uygulamalardan ilham aldı. Toplam değer, günlük/haftalık/aylık değişim, en değerli 10 plak ve değer dağılımı pasta grafikleri tek bakışta görülebilir. Grafiklerde interaktif tooltip ile detay inceleme mümkün. Accessibility: Barkod tarama VoiceOver ile uyumlu (sesli geri bildirim ile tarama başarısı bildirimi). Koleksiyon listesi Dynamic Type tam uyumlu. Renk kontrastları WCAG AA standardını karşılar. Tüm interaktif öğeler minimum 44pt touch target.

Sonuçlar & Etki

Plak Koleksiyon, niş bir pazarda güçlü bir topluluk oluşturdu. Lansmanın ardından 8 ayda 35.000 aktif kullanıcıya ulaştı. Türkiye'deki vinil plak koleksiyoncuları arasında referans uygulama haline geldi. Toplam kataloglanan plak sayısı 420.000'i aştı. Barkod tanıma başarı oranı %96.4 olarak ölçüldü. Görsel arama doğruluğu %78 ile daha düşük olmakla birlikte, OCR kombinasyonu ile top-3 doğruluk %91'e çıkıyor. Ortalama kataloglama süresi plak başına 4.2 saniye (barkod) ve 12 saniye (görsel arama). Takas platformu organik büyüme gösterdi: 2.800'den fazla başarılı takas gerçekleştirildi, anlaşmazlık oranı %1.8 ile düşük seyrediyor. Ortalama takas değeri plak başına 180 TL. Platform üzerinden gerçekleşen toplam takas değeri 1.2 milyon TL'yi aştı. Kullanıcı etkileşim metrikleri: ortalama koleksiyon büyüklüğü 127 plak, haftalık aktif kullanıcı oranı %44, ortalama oturum süresi 5.6 dakika. Premium dönüşüm oranı %12 ile hedefin üzerinde. Teknik performans: API cache hit oranı %82, Core Data query P95 35ms, barkod tarama latency P50 280ms. Crash-free oranı %99.5, CloudKit sync conflict oranı %0.3.

Öğrenilen Dersler

Üçüncü parti API bağımlılığı, ürünün kaderini doğrudan etkiler. Discogs API'nin beklenmedik bir yapısal değişikliği, 2 günlük acil müdahale gerektirdi. API abstraction layer ve versiyonlanmış response mapping, bu tür değişikliklere karşı dayanıklılığı artırdı. Niş pazarlarda topluluk oluşturma, genel pazarlama stratejilerinden çok daha etkili. Reddit r/vinyl, Türkiye plak forumları ve Instagram plak toplulukları üzerinden organik büyüme, ücretli reklamlardan 4 kat daha yüksek dönüşüm oranı sağladı. Koleksiyoncular detay odaklıdır ve veri doğruluğuna çok önem verirler. İlk versiyonda pressing bilgileri (ülke, yıl, label varyantı) eksik olduğunda ciddi olumsuz geri bildirimler alındı. Discogs release group yerine spesifik release eşleştirmesine geçiş, kullanıcı memnuniyetini dramatik şekilde artırdı. Freemium modelde ücretsiz katmanın değer sunması kritik. İlk versiyonda 20 plak sınırı çok kısıtlayıcıydı ve kullanıcılar uygulamayı yeterince deneyimleyemeden terk ediyordu. 50 plağa çıkarıldığında, premium dönüşüm oranı paradoksal olarak %8'den %12'ye yükseldi — kullanıcılar değeri gördükten sonra ödeme yapmaya daha istekli. Offline-first yaklaşımı koleksiyon uygulamaları için zorunlu. Plak fuarlarında ve plakçılarda internet bağlantısı sıklıkla yetersiz. Core Data ile tam offline CRUD desteği ve CloudKit ile arka plan senkronizasyonu, gerçek dünya kullanım senaryolarını karşıladı.

Proje Bilgileri

RolSolo iOS Developer
Takım2 kişi (1 iOS Developer, 1 UI/UX Designer)
Yıl2024
Süre6 ay
MimariMVVM + Repository Pattern
Platformlar
iOSiPadOS

Teknolojiler

SwiftSwiftUIAVFoundationVisionCore DataCloudKitStoreKit 2Charts

Paylaş

İlgili Yazılar

Swift

Swift 6.0 Tam Rehber: Concurrency, Typed Throws ve Daha Fazlası

Swift 6.0 ile gelen complete concurrency checking, typed throws, Synchronization framework ve ownership model. Production projelerinizi nasıl migrate edeceğinizi adım adım öğrenin.

22 dk
SwiftUI

SwiftUI'da Performance Optimizasyonu

SwiftUI uygulamalarınızı hızlandırmanın 15 etkili yolu. View lifecycle, state management ve lazy loading teknikleri.

15 dk
SwiftUI

SwiftUI Navigation Sistemi: Deep Linking ve Coordinator Pattern

NavigationStack'in ötesine geçin! Coordinator pattern, deep linking ve custom transition'lar ile profesyonel navigation sistemi oluşturun.

22 dk
Bir Sonraki Adım

Benzer Bir Proje mi Düşünüyorsunuz?

12+ yıllık mobil geliştirme deneyimimle hayalinizdeki uygulamayı birlikte hayata geçirelim.

Ücretsiz Teklif AlınProjelerimi İnceleyin

İlk görüşme tamamen ücretsizdir

Önceki Proje

Bitki Doktoru

Yaşam & Bahçe
Sonraki Proje

Kuş Gözlem

Doğa & Eğitim

İlgili Blog Yazıları

Tüm Yazıları Gör
iOS

StoreKit 2 ile Modern In-App Purchase

Modern StoreKit API ile subscription ve one-time purchase implementasyonu. Transaction handling, receipt validation ve testing.

22 dk
visionOS

visionOS Development: Spatial Computing ile Geleceği Kodla

Apple Vision Pro için uygulama geliştirme. Windows, volumes, immersive spaces, RealityKit entegrasyonu ve spatial interaction patterns.

23 dk
Architecture

Swift'te Dependency Injection: Container'dan Property Wrapper'a

iOS uygulamalarında Dependency Injection stratejilerini öğrenin. Constructor, property ve method injection, DI container, protocol-based DI ve testing ile DI.

20 dk

İlgili Karşılaştırmalar

Tüm Karşılaştırmaları Gör
iOS

SwiftUI vs UIKit

Apple'ın modern deklaratif framework'ü SwiftUI ile battle-tested UIKit arasındaki kapsamlı karşılaştırma. 2025'te hangi framework'ü seçmelisiniz?

10 dk okuma
iOS

Core Data vs SwiftData

Apple'ın eski savaşçısı Core Data ile WWDC 2023'te tanıtılan modern SwiftData karşılaşıyor. Persistence katmanı seçiminde doğru karar hangisi?

8 dk okuma
Tüm Projeleri Gör

Muhittin Çamdalı

iOS, Flutter ve modern mobil teknolojilerle dünya standartında uygulamalar geliştiriyorum

İstanbul
Yeni projeler için müsaitim

Hızlı Bağlantılar

  • Ana Sayfa
  • Hakkımda
  • Projeler
  • Blog
  • Teklif Al
  • İletişim
  • Özgeçmiş
  • GitHub
  • Karşılaştırmalar
  • Kaynaklar
  • Okuma Listesi
  • Duvar Kağıtları
  • Kod Snippets
  • Araç Kutusu
  • Playground
  • Dashboard

Sosyal Medya

RSS Beslemesi
Changelog•Colophon•Credits•Status•RSS•Gizlilik•Çerez Politikası•Koşullar•KVKK Aydınlatma•Telif Hakkı•

Bülten

Yeni yazılar ve projeler için haftalık bültene abone olun.

© 2026 Muhittin Çamdalı. Tüm hakları saklıdır.•Blog: CC BY-NC-SA 4.0 | Code: MIT•

•

İstanbul, Türkiye 🇹🇷