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. Kitap Takas
Kitap & Kültür

Kitap Takas

İkinci El Kitap Takas ve Satış Platformu

9:41
K

Kullanıcı

İndirme

4.7(1.240+ değerlendirme)

App Store Puanı

9 ay

Geliştirme Süresi

Proje Hakkında

Kitap Takas, Türkiye'deki kitap severlerin raflarında bekleyen kitapları ekonomik ve sürdürülebilir bir şekilde dolaşıma sokmasını sağlayan kapsamlı bir ikinci el kitap platformudur. Uygulama, hem satış hem de takas modelini destekleyerek kullanıcılara esneklik sunar. Platformun en güçlü özelliği, barkod tarama ile kitap ekleme sürecinin saniyeler içinde tamamlanmasıdır. ISBN barkodu tarandığında kitabın tüm bilgileri (başlık, yazar, yayınevi, kapak görseli, sayfa sayısı, kategori) otomatik olarak doldurulur. Kullanıcının sadece kitabın durumunu (yeni gibi, iyi, kabul edilebilir) ve fotoğraflarını eklemesi yeterlidir. Akıllı fiyat önerisi motoru, kitabın piyasa değerini, durumunu, baskı yılını ve talep yoğunluğunu analiz ederek satıcıya adil bir fiyat aralığı önerir. Bu özellik, hem satıcının rekabetçi fiyatlandırma yapmasını hem de alıcının adil bir fiyat ödediğinden emin olmasını sağlar. Takas mekanizması, doğrudan ve çok taraflı takas senaryolarını destekler. Doğrudan takas, iki kullanıcının karşılıklı olarak kitap değiştirmesidir. Çok taraflı takas, sistemin 3 veya daha fazla kullanıcı arasında karmaşık takas döngüleri tespit ederek otomatik eşleştirme yapmasıdır. Bu özellik, kullanıcıların istediği kitabı doğrudan karşı tarafta bulamasa bile dolaylı yoldan elde edebilmesini sağlar. Sosyal özellikler platformun bağlılık yaratan katmanını oluşturur. Okuma listeleri, kitap incelemeleri, puanlama sistemi ve kitap kulüpleri ile kullanıcılar arasında güçlü bir topluluk bağı kurulur. Kitap kulüpleri, ortak okuma seansları düzenleyebilir, tartışma başlıkları açabilir ve okuma hedefleri belirleyebilir.

Özellikler

✦ ISBN barkod tarama ile anında kitap ekleme
✦ AI destekli akıllı fiyat önerisi motoru
✦ Doğrudan ve çok taraflı kitap takas sistemi
✦ Konum tabanlı yakınımdaki kitaplar keşfi
✦ Okuma listeleri ve okuma hedefi takibi
✦ Kitap kulüpleri ve topluluk tartışmaları
✦ Kitap durumu değerlendirme rehberi
✦ Güvenli ödeme ve kargo entegrasyonu
✦ Yazar ve yayınevi takip sistemi
✦ Kişiselleştirilmiş kitap öneri motoru

Süreç

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

Zorluklar & Çözümler

Zorluk

Kitap Takas projesinin en zorlu teknik problemi, çok taraflı takas döngülerinin tespit ve optimizasyonuydu. Binlerce kullanıcının istek ve teklif listelerinden karşılıklı takas zincirleri bulmak, graf teorisi problemlerinden cycle detection ile çözülmesi gereken NP-hard bir optimizasyon problemidir. Üstelik bu döngülerin gerçek zamanlıya yakın sürede hesaplanması ve kullanıcılara sunulması gerekiyordu. Kitap veri zenginleştirme ikinci büyük zorluktu. ISBN veri tabanları (OpenLibrary, Google Books API, TCKB) her zaman tutarlı ve eksiksiz bilgi sunmuyordu. Türkçe kitapların uluslararası veri tabanlarında temsil oranı düşüktü ve yayınevlerinin kendi veri tabanları standart bir API sunmuyordu. Eski baskı kitaplar ve niş yayınevlerinin ürünleri için ISBN eşleşmesi bulunamıyordu. Kitap durumu değerlendirmesi subjektif bir konu olup, takas veya satış sonrası anlaşmazlıklara yol açabilecek bir riskti. "İyi durumda" tanımı kullanıcıdan kullanıcıya farklılık gösterebiliyordu. Bu subjektiflik, güven sorunlarına ve iade taleplerine neden olabiliyordu. Fiyat önerisi algoritmasının güvenilirliği, sınırlı tarihsel veri ile başlangıçta kalibre edilmesi zordu. Türkiye'de ikinci el kitap piyasasının informal yapısı nedeniyle benchmark fiyat verileri sınırlıydı. Ayrıca enflasyon ortamında fiyat önerilerinin hızla güncelliğini yitirmesi ayrı bir sorundu.

Çözüm

Çok taraflı takas problemi için graf tabanlı bir eşleştirme motoru geliştirdik. Kullanıcıların teklif ettikleri kitaplar (sahip) ve istedikleri kitaplar (istek) yönlü graf düğümleri olarak modellendi. Tarjan's strongly connected components algoritması ile potansiyel takas döngüleri tespit edilir. Minimum döngü uzunluğu ve kullanıcı tercihleri (konum yakınlığı, kitap durumu) ile ağırlıklandırılmış skorlama yapılarak en optimal döngüler kullanıcılara önerilir. Hesaplama arka planda saatlik olarak yapılır ve sonuçlar push notification ile kullanıcılara bildirilir. Kitap veri zenginleştirme için çok kaynaklı bir veri federasyonu sistemi kurduk. Birincil kaynak Google Books API, ikincil kaynak OpenLibrary, üçüncü kaynak Türkiye Cumhuriyeti Kültür Bakanlığı ISBN veri tabanıdır. Hiçbir kaynakta bulunamayan kitaplar için OCR tabanlı kapak tanıma (Vision framework) ve topluluk destekli veri girişi mekanizması eklendi. Kullanıcılar eksik bilgileri tamamladığında gamification (puan + rozet) ile teşvik edilir. Kitap durumu değerlendirmesi için 5 kademeli standart bir değerlendirme rehberi oluşturuldu: Yeni Gibi, Çok İyi, İyi, Kabul Edilebilir, Yıpranmış. Her kademe için referans fotoğraflarla desteklenen açık tanımlar belirlendi. Ayrıca zorunlu fotoğraf yükleme (minimum 3: ön kapak, arka kapak, sayfa kenarları) ile alıcının kitabın gerçek durumunu görmesi sağlandı. Vision framework ile otomatik yıpranma tespiti (sararma, katlanma, leke) pilot olarak geliştirildi. Fiyat önerisi için hybrid bir model tasarlandı. Google Books API'den liste fiyatı, platformdaki geçmiş satış verileri, kitabın baskı yılı, durumu ve talep yoğunluğu (istek listesinde kaç kişi var) parametreleri ile dinamik fiyat aralığı hesaplanır. Enflasyon parametresi TÜİK TÜFE verisi ile aylık güncellenir. Model, yeni veri geldikçe sürekli kalibre edilir.

Teknik Detaylar

Kitap Takas, MVVM-C (Coordinator) pattern üzerine Repository Pattern ile inşa edilmiştir. SwiftUI view katmanı @Observable macro ile state management sağlar. Navigation, NavigationStack + path-based routing ile merkezi olarak yönetilir ve deep linking (Universal Links) tam desteklenir. Barkod tarama modülü AVCaptureSession üzerine kurulmuştur. AVCaptureMetadataOutput ile EAN-13 ve ISBN-13 barkod formatları desteklenir. Tarama başarılı olduğunda haptic feedback (UIImpactFeedbackGenerator) ve sesli onay verilir. Continuous autofocus ve torch mode desteği ile farklı ışık koşullarında performans optimize edilmiştir. Tarama sonrası kitap bilgisi async/await ile paralel olarak 3 API kaynağından sorgulanır (structured concurrency ile TaskGroup). Lokal veri katmanı Core Data üzerine inşa edilmiştir. NSPersistentContainer ile SQLite backend kullanılır. Kullanıcının kendi kitap koleksiyonu, okuma listeleri ve takas geçmişi offline olarak erişilebilir. CloudKit sync NSPersistentCloudKitContainer ile sağlanır, cihazlar arası veri tutarlılığı otomatik yönetilir. Graf tabanlı takas motoru, adjacency list representation ile modellenen yönlü graf üzerinde çalışır. Swift'in value type semantiği ile graf düğümleri struct olarak tanımlanmış, copy-on-write ile bellek verimliliği sağlanmıştır. Cycle detection O(V+E) zaman karmaşıklığında çalışır. Bulunan döngüler, ağırlıklı skorlama fonksiyonu ile sıralanır: skor = 0.4 * konum_yakınlığı + 0.3 * kitap_durumu_eşleşmesi + 0.2 * kullanıcı_puanı + 0.1 * döngü_kısalığı. Harita modülü MapKit ile entegre edilmiştir. MKClusterAnnotation ile yakın konumdaki kitaplar gruplandırılır. Kullanıcı konumuna göre 5km, 10km, 25km yarıçap filtreleri sunulur. Annotation detayında kitap görseli, fiyat ve satıcı puanı mini kart olarak gösterilir. StoreKit 2 ile premium üyelik (Kitap Takas Plus) yönetilir. Premium özellikler: sınırsız takas önerisi, gelişmiş arama filtreleri, öncelikli müşteri desteği ve reklamsız deneyim. Transaction.currentEntitlements ile aktif abonelik durumu doğrulanır.

Araştırma Notları

Türkiye'de yayımlanan kitap sayısı yıllık 80.000+ olup, ikinci el kitap pazarı yaklaşık 2.5 milyar TL büyüklüğündedir. Bu pazarın %85'i sahaf ve pazar tezgahı gibi geleneksel kanallardan oluşmakta, dijital penetrasyon %15 civarında kalmaktadır. Rakip analizi kapsamında Letgo/Dolap (genel ikinci el), Nadirkitap (koleksiyon/antika), Kitantik (online sahaf), BookMooch (ABD, takas), PaperBackSwap (ABD, takas) ve ThriftBooks (ABD, satış) incelenmiştir. Türkiye pazarında kitap özelinde takas mekanizması sunan yerli bir platform bulunmamaktadır. Kullanıcı araştırmasında 250+ kitap sever ile anket ve 40+ derinlemesine görüşme yapılmıştır. Katılımcıların %71'i evinde okunmuş ve rafta bekleyen 20+ kitap olduğunu belirtmiştir. %83'ü ikinci el kitap satın almaya açık olduğunu, %68'i takas konseptine ilgi gösterdiğini ifade etmiştir. En büyük engeller: güven eksikliği (%45), kitap durumu belirsizliği (%38), kargo maliyeti (%32). Graf teorisi ve cycle detection konusunda akademik literatür taranmıştır. Kidney exchange (böbrek nakli eşleştirme) problemlerinden ilham alınarak, kitap takas döngülerinin optimizasyonu için benzer algoritmik yaklaşımlar adapte edilmiştir. Shapley value ile adil puan dağılımı ve Pareto optimal döngü seçimi araştırılmıştır.

Tasarım Süreci

Tasarım süreci, kitap severlerle yapılan etnografik araştırma ile başlamıştır. Sahaf gezileri, kitap fuarları ve online kitap toplulukları (Babil, Goodreads TR) gözlemlenmiş, kullanıcıların kitap keşfi ve değişim alışkanlıkları doğrudan incelenmiştir. Bu gözlemler, fiziksel sahaf deneyiminin dijitale taşınmasında korunması gereken unsurları belirlemiştir: keşif heyecanı, piyasalık sohbet ve güven ilişkisi. Kullanıcı yolculuğu iki ana akış üzerinden tasarlanmıştır: satıcı/takas eden akışı (kitap ekle → fiyat/takas belirle → listele → eşleşme → gönder) ve alıcı/takas alan akışı (keşfet → incele → satın al/takas teklifi → teslim al → değerlendir). Her iki akış da minimum 3, maksimum 5 adımda tamamlanacak şekilde optimize edilmiştir. Görsel tasarımda, kitap estetiği ve nostalji hissi referans alınmıştır. Amber-turuncu sıcak renk paleti, kağıt dokusu subtle arka planlar ve serif tipografi (Georgia + system sans) ile kitap severler için tanıdık bir atmosfer yaratılmıştır. Kitap kartları, fiziksel kitabın dijital temsili olarak hafif gölge ve köşe yuvarlaması ile tasarlanmıştır. Barkod tarama ekranı, kullanıcı testlerinde en önemli ilk deneyim noktası olarak belirlenmiştir. Kamera açıldığında hedefleme çerçevesi, tarama ipuçları ve başarılı tarama animasyonu (kitap bilgisi reveal) ile ilk kullanım deneyimi olumlu kılınmıştır. Tarama butonunun tab bar'da merkezi ve büyük konumda yerleştirilmesi (Instagram kamera butonu referansı) erişilebilirliği artırmıştır. Erişilebilirlik tasarımında VoiceOver tam desteği sağlanmıştır. Kitap kartları, başlık + yazar + fiyat + durum bilgisini semantic olarak sunar. Barkod tarama ekranında sesli yönlendirme ile görme engelli kullanıcılar da tarama yapabilir. Dynamic Type ile tüm metin boyutları kullanıcı tercihi ile ölçeklenir.

Sonuçlar & Etki

Kitap Takas, lansmandan itibaren 9 ay içinde 60.000+ aktif kullanıcıya ve 180.000+ indirmeye ulaşmıştır. Platform üzerinden 95.000+ kitap listelenmekte olup, aylık 12.000+ başarılı takas ve satış işlemi gerçekleşmektedir. Çok taraflı takas özelliği, platformun en farklılaştırıcı özelliği olmuştur. Aylık ortalama 1.800 çok taraflı takas döngüsü tespit edilmekte ve bunların %62'si kullanıcılar tarafından kabul edilmektedir. Bu özellik, doğrudan takas bulamayan kullanıcıların %34'ünü platformda tutmayı başarmıştır. Barkod tarama ile kitap ekleme süresi ortalama 8 saniye olup, manuel giriş süresinin (2.5 dakika) çok altındadır. ISBN tanıma başarı oranı %97.8'dir. Veri zenginleştirme başarı oranı (en az başlık + yazar + kapak görseli) %94.5'tir. Fiyat önerisi motoru, kullanıcıların %78'i tarafından adil bulunmaktadır. Fiyat önerisi kullanan satıcıların kitapları, kullanmayanlara göre %45 daha hızlı satılmaktadır. Ortalama satış süresi 4.2 gün olup, bu süre sektör ortalamasının (12 gün) çok altındadır. Kitap kulüpleri özelliği, 850+ aktif kulüp ile güçlü bir topluluk oluşturmuştur. Kulüp üyelerinin aylık ortalama 3.2 kitap takası yapması, genel kullanıcı ortalamasının (1.4) iki katından fazladır. Bu veri, sosyal özelliklerin engagement üzerindeki etkisini net şekilde göstermektedir. App Store'da Kitaplar kategorisinde Türkiye'de sürekli ilk 15 içinde yer almaktadır. 1.240+ değerlendirme ile 4.7 puan elde edilmiştir.

Öğrenilen Dersler

Kitap Takas projesi, iki taraflı pazar (two-sided marketplace) dinamiklerinin ne kadar zor yönetildiğini öğretti. Lansman aşamasında yeterli kitap envanteri olmadan kullanıcı çekmek, yeterli kullanıcı olmadan satıcı çekmek klasik tavuk-yumurta problemidir. Bu sorunu çözmek için lansman öncesi 200+ kitap sever ile topluluk oluşturuldu ve her biri en az 10 kitap listelemesi teşvik edildi. Lansmanda 2.000+ kitaplık başlangıç envanteri oluşturulmuş oldu. Çok taraflı takas algoritmasının ölçeklenebilirliği önemli bir öğrenme noktasıydı. İlk sürümde brute-force yaklaşımla tüm olası döngüler aranıyordu ve 10.000+ kitap durumunda hesaplama dakikalar sürüyordu. Tarjan's SCC algoritmasına geçiş ve graf pruning (düşük olasılıklı kenarları eleme) ile hesaplama süresi saniyeler seviyesine düşürüldü. Kitap durumu anlaşmazlıkları başlangıçta işlemlerin %12'sinde yaşanıyordu. Zorunlu fotoğraf politikası ve standart değerlendirme rehberi ile bu oran %3'e düşürüldü. Ancak en etkili çözüm, alıcı onay süreci oldu: alıcı kitabı teslim aldıktan sonra 48 saat içinde durumu onaylar, onaylamadığı takdirde arabuluculuk süreci başlar. Sosyal özelliklerin (kitap kulüpleri, tartışmalar, okuma hedefleri) engagement ve retention üzerindeki etkisi beklenenden büyük oldu. Sosyal özellikleri aktif kullanan kullanıcıların 6 aylık retention oranı %72 iken, kullanmayanların %38'de kaldı. Bu deneyim, community-driven ürünlerde sosyal katmanın transaksiyonel değer kadar önemli olduğunu gösterdi.

Proje Bilgileri

RolLead iOS Developer
Takım5 kişi (2 iOS, 1 Backend, 1 Tasarımcı, 1 PM)
Yıl2023
Süre9 ay
MimariMVVM-C + Repository Pattern
Platformlar
iOS

Teknolojiler

SwiftSwiftUIAVFoundationVisionCore DataCloudKitCombineMapKitStoreKitFirebase

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

Market Hızlı

Market & Teslimat
Sonraki Proje

Travel Lens

Seyahat & Keşif

İlgili Blog Yazıları

Tüm Yazıları Gör
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
AR/VR

ARKit ile Artırılmış Gerçeklik: Sıfırdan İleri Seviye

ARKit ve RealityKit ile immersive AR deneyimleri oluşturun. Plane detection, image tracking, face tracking ve LiDAR entegrasyonu.

24 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

İ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 🇹🇷