MANAGING UPLOAD & DOWNLOAD IN IOS EĞİTİMİ

iOS'ta dosya transferini ustaca yönet

URLSession ile indirme, yükleme, ilerleme takibi ve arka plan transferleri

Managing Upload & Download in iOS Eğitimi, Swift ve URLSession ile iOS uygulamalarında dosya indirme ve yükleme akışlarını uygulamalı öğretir.

4 gün Orta Seviye Online / Yüz Yüze / Hibrit Sertifikalı

Eğitim Hakkında

URLSession temellerinden arka plan transferlerine ve ilerleme takibine kadar

Managing Upload & Download in iOS Eğitimi, Swift ve URLSession kullanarak iOS uygulamalarında dosya indirme ve yükleme akışlarını uçtan uca yönetmeyi öğretir. Katılımcılar URLSession mimarisini, dataTask ve async/await ile HTTP isteklerini, downloadTask ile büyük dosya indirmeyi ve resume data ile kaldığı yerden devamı öğrenir.

Süre ve Format

4 Gün. Her gün dört modül; kısa anlatımın ardından gerçek bir indirme ve yükleme ekranı adım adım geliştirilerek konular tek projede birleştirilir.

Seviye

Orta Seviye — Swift ve URLSession ile iOS'ta dosya indirme ve yükleme akışlarını yöneten program

Öğrenme Metodu

Tek bir örnek transfer uygulaması dört gün boyunca geliştirilir; her modülde yeni bir URLSession yeteneği gerçek koda eklenir.

Neden Bu Eğitim?

🎯Gerçek transfer akışı

İndirme ve yüklemeyi completion handler, delege ve async/await ile kurarak uygulamada sağlam bir ağ katmanı oluşturursunuz.

🧩İlerleme ve devam

Progress takibi, resume data ile kaldığı yerden devam ve iptal gibi kullanıcı beklediği davranışları doğru biçimde uygularsınız.

🚀Arka plan transferi

Uygulama askıdayken bile süren arka plan oturumlarıyla büyük dosyaları güvenilir şekilde indirip yüklemeyi öğrenirsiniz.

Anahtar Konular

ios eğitimiswift urlsession eğitimiios dosya indirmeios dosya yüklemeurlsession kursuios ağ programlamaarka plan transfer iosmultipart upload iosios mobil uygulama geliştirme eğitimiswift ağ katmanı
“Sağlam bir transfer katmanı yalnızca veriyi taşımaz; ilerlemeyi gösterir, kesintiden döner ve uygulama kapalıyken bile işini sürdürür.”

Ön Koşullar

Eğitime başlamadan önce faydalı olacak bilgi ve araçlar

1
Swift temeli

Değişken, fonksiyon, closure ve opsiyonel gibi temel Swift kavramlarına aşinalık yeterlidir.

2
Temel iOS bilgisi

Xcode ile basit bir uygulama oluşturup bir ekranda arayüz kurabilecek düzeyde iOS deneyimi beklenir.

3
HTTP kavramı

GET, POST, durum kodu ve başlık gibi temel HTTP kavramlarını bilmek öğrenmeyi hızlandırır.

4
Xcode kurulumu

Güncel bir Xcode sürümünün kurulu ve simülatör ya da cihazda çalıştırmaya hazır olması gerekir.

Eğitim İçeriği

Programın gün gün akışı aşağıdadır. Bir güne tıklayarak o günün modüllerini ve içeriklerini görebilirsiniz.

Günün hedefiKatılımcı URLSession yapılandırmalarını ayırt eder, URLRequest ile HTTP isteği kurar ve dataTask ile async/await yaklaşımlarını uygulayarak yanıtı çözümler.
Modül 1
URLSession Mimarisi
  • shared oturum ile hızlı istek ve sınırları
  • URLSessionConfiguration: default, ephemeral, background
  • Task türleri: data, download, upload, stream
  • Completion handler ve delege yaklaşımının karşılaştırması
  • Oturum yaşam döngüsü ve invalidateAndCancel kullanımı
  • Tek paylaşılan oturumun yeniden kullanılması ilkesi
Modül 2
URLRequest ve HTTP Metotları
  • URL ve URLComponents ile güvenli adres kurma
  • httpMethod ile GET, POST ve PUT ayarı
  • allHTTPHeaderFields ile başlık ve yetkilendirme
  • httpBody ile istek gövdesinin hazırlanması
  • cachePolicy ile önbellek davranışının seçimi
  • timeoutInterval ile istek zaman aşımı yönetimi
Modül 3
dataTask ve Yanıt İşleme
  • dataTask completion handler ile veri alma
  • HTTPURLResponse üzerinden durum kodu kontrolü
  • Data nesnesinin JSONDecoder ile çözümlenmesi
  • Hata, veri ve yanıtın birlikte doğrulanması
  • resume() çağrısının görevi başlatma zorunluluğu
  • Ana iş parçacığına dönüp arayüzü güncelleme
Modül 4
async/await ile Modern Ağ
  • data(for:) async metodu ile istek yapma
  • try await ile hata fırlatan çağrı yönetimi
  • URLSession ile Swift Concurrency kullanımı
  • Task ile iptal edilebilir ağ işi oluşturma
  • async bağlamdan MainActor ile arayüz güncelleme
  • Eski completion handler kodunun async'e taşınması
Günün hedefiKatılımcı downloadTask ile büyük dosyaları belleği şişirmeden indirir, ilerlemeyi delege ile takip eder ve resume data ile kesinti sonrası indirmeyi devam ettirir.
Modül 1
downloadTask Temelleri
  • downloadTask ile diske indirme mantığı
  • Sistemin verdiği geçici dosya URL'sinin anlamı
  • FileManager ile dosyayı kalıcı konuma taşıma
  • Belleği şişirmeden büyük dosya indirme avantajı
  • Completion handler ile indirme sonucunu alma
  • İndirilen dosya için hedef dizin seçimi
Modül 2
İndirme İlerlemesi ve Delege
  • URLSessionDownloadDelegate kurulumu ve atanması
  • didWriteData ile yazılan bayt bilgisinin alınması
  • totalBytesWritten ve beklenen boyutla oran
  • Progress nesnesi ile ilerleme yüzdesi hesabı
  • didFinishDownloadingTo ile tamamlanma olayı
  • İlerlemenin ana iş parçacığında arayüze yansıması
Modül 3
Duraklatma ve Devam (Resume)
  • cancel(byProducingResumeData:) ile duraklatma
  • resumeData nesnesinin saklanması ve anlamı
  • downloadTask(withResumeData:) ile devam başlatma
  • Ağ kesintisi sonrası kaldığı yerden sürdürme
  • Geçersiz resume data durumunda baştan indirme
  • Sunucunun byte-range desteğinin önemi
Modül 4
Önbellek ve Dosya Yönetimi
  • URLCache ile yanıtların bellek ve disk önbelleği
  • İndirileni Documents veya Caches'e yazma kararı
  • Aynı dosyayı tekrar indirmekten kaçınma yöntemi
  • ETag ve If-None-Match ile koşullu indirme
  • Disk kullanımını sınırlama ve temizleme
  • Dosya var mı kontrolüyle gereksiz indirmeyi önleme
Günün hedefiKatılımcı uploadTask ile veri ve dosya yükler, multipart/form-data gövdesini elle oluşturur, büyük dosyaları akışla gönderir ve yükleme ilerlemesini takip eder.
Modül 1
uploadTask Temelleri
  • uploadTask(with:from:) ile Data yükleme
  • uploadTask(with:fromFile:) ile dosyadan yükleme
  • HTTP POST ve PUT metotlarıyla gönderim
  • Sunucu yanıtının completion ile alınması
  • Content-Type başlığının doğru ayarlanması
  • Yükleme için ayrı bir URLRequest hazırlama
Modül 2
multipart/form-data Oluşturma
  • boundary dizesinin üretimi ve başlığa yazımı
  • Content-Type: multipart/form-data tanımı
  • Her alan için Content-Disposition parçası
  • Dosya parçasına ad ve MIME türü ekleme
  • Metin alanı ve dosyanın tek gövdede birleşmesi
  • Çoklu dosyanın aynı istekte gönderilmesi
Modül 3
Yükleme İlerlemesi
  • URLSessionTaskDelegate didSendBodyData olayı
  • totalBytesSent ile gönderilen bayt takibi
  • Beklenen boyutla ilerleme yüzdesi hesabı
  • Progress nesnesiyle arayüze bağlama
  • Büyük dosyada kullanıcıya geri bildirim
  • Yükleme sırasında iptal ve yeniden deneme
Modül 4
Akış (Stream) ile Yükleme
  • InputStream ile bellek dostu gövde sağlama
  • needNewBodyStream delege metodunun görevi
  • Çok büyük dosyayı parçalar hâlinde gönderme
  • chunked transfer ve beklenen uzunluk başlığı
  • Akış hatalarının yakalanması ve yönetimi
  • Diskten doğrudan akışla yükleme avantajı
Günün hedefiKatılımcı arka plan URLSession ile uygulama askıdayken transferi sürdürür, yeniden başlatma akışını yönetir ve güvenlik, retry ve test konularıyla katmanı sağlamlaştırır.
Modül 1
Arka Plan Oturumları
  • background configuration ve benzersiz identifier
  • Uygulama askıdayken sistemin transferi sürdürmesi
  • isDiscretionary ile uygun zamanda transfer
  • sessionSendsLaunchEvents ile uygulamayı uyandırma
  • Yalnızca download ve upload task desteği
  • Sistem yeniden başlatmasında transferin korunması
Modül 2
Uygulama Yeniden Başlatma Akışı
  • handleEventsForBackgroundURLSession ile yakalama
  • Verilen completionHandler'ın saklanması
  • Aynı identifier ile oturumun yeniden bağlanması
  • urlSessionDidFinishEvents ile olayların bitişi
  • Saklanan handler'ın ana iş parçacığında çağrılması
  • Bekleyen task'lerin yeniden ele alınması
Modül 3
Güvenlik ve App Transport Security
  • ATS ile HTTPS zorunluluğunun anlamı
  • Info.plist'te istisna alanı tanımlama riski
  • didReceive challenge ile kimlik doğrulama
  • Sunucu sertifikasının güven değerlendirmesi
  • Certificate pinning ile sahte sertifika engeli
  • Kimlik bilgilerinin Keychain'de saklanması
Modül 4
Dayanıklılık, Test ve Yayın
  • Ağ hatasında yeniden deneme ve üstel geri çekilme
  • Bağlantı durumuna göre transferi erteleme
  • URLProtocol ile ağ yanıtlarını mock'layarak test
  • Instruments ile ağ ve bellek profili çıkarma
  • Hata durumlarının kullanıcıya anlaşılır sunumu
  • Yayın öncesi zayıf ağ koşullarında doğrulama

Eğitim Kazanımları

Program sonunda katılımcılar:

✅
URLSession hakimiyeti

URLSession yapılandırmalarını ayırt eder, doğru oturumu seçer ve tek bir oturumu verimli biçimde yeniden kullanırsınız.

✅
Modern ağ çağrıları

dataTask ve async/await ile HTTP isteklerini kurar, yanıtı çözümler ve hataları güvenle yönetirsiniz.

✅
Büyük dosya indirme

downloadTask ile belleği şişirmeden indirir, dosyayı kalıcı konuma taşır ve indirme akışını denetlersiniz.

✅
İlerleme takibi

Delege ve Progress nesnesiyle indirme ve yükleme ilerlemesini hesaplar ve arayüze akıcı şekilde yansıtırsınız.

✅
Resume ile devam

Resume data ile duraklatılan veya kesilen indirmeyi kaldığı yerden güvenilir biçimde sürdürürsünüz.

✅
Dosya ve multipart yükleme

uploadTask ve multipart/form-data ile dosya ve alanları tek istekte doğru biçimde sunucuya gönderirsiniz.

✅
Arka plan transferi

Arka plan oturumlarıyla uygulama askıdayken transferi sürdürür ve yeniden başlatma akışını yönetirsiniz.

✅
Güvenli ve dayanıklı katman

ATS, pinning, retry ve mock testle güvenli, hatalara dayanıklı ve test edilebilir bir ağ katmanı kurarsınız.

Kimler İçin Uygundur?

  • Swift ile iOS uygulaması geliştiren ve ağ üzerinden dosya indirme
  • yükleme
  • ilerleme takibini doğru biçimde kurmak isteyen mobil geliştiriciler ile URLSession bilgisini arka plan transferlerine taşımak isteyen yazılımcılar için uygundur

Sıkça Sorulan Sorular

Bu eğitim kimler için uygundur?
Swift ile iOS uygulaması geliştiren ve ağ üzerinden dosya indirme, yükleme ile ilerleme takibini doğru kurmak isteyen mobil geliştiriciler için uygundur. Temel Swift ve Xcode deneyimi ile HTTP kavramlarına aşinalık yeterlidir.
Eğitimin süresi ve formatı nedir?
Eğitim dört gün sürer ve her gün dört modülden oluşur. Tek bir örnek transfer uygulaması gün gün geliştirilir. Yüz yüze veya online yapılabilir ve kurumun ihtiyacına göre içerik uyarlanabilir.
Arka plan transferleri de ele alınıyor mu?
Evet. Son günde background URLSession yapılandırması, uygulama askıdayken süren transferler, uygulamanın sistem tarafından uyandırılması ve handleEventsForBackgroundURLSession ile yeniden başlatma akışı uygulamalı olarak işlenir.
async/await mi yoksa completion handler mı kullanılıyor?
Her ikisi de ele alınır. Modern async/await yaklaşımı temel alınır; ancak delege gerektiren indirme, yükleme ve arka plan senaryoları için completion handler ve delege yöntemleri de gerçek kodla gösterilir.
Eğitim sonunda sertifika veriliyor mu?
Programı tamamlayan katılımcılar Digital Vizyon Akademi Katılım ve Başarı Sertifikası alır. Sertifika tamamlanan modülleri ve geliştirilen örnek uygulamayı belgeler; kurumsal gruplara özel uyarlama yapılabilir.

Sertifikalandırma

Bu eğitim Digital Vizyon Akademi Başarı Sertifikası ile tamamlanır.

Eğitim başında “Ön Test”, bitiminde “Son Test” uygulanarak gelişim ölçümlenir. Değerlendirme formunu dolduran katılımcılar sertifikalarını alır. Sertifikanızın geçerliliğini Sertifika Sorgulama sayfasından doğrulayabilirsiniz.

Örnek Sertifika d Digital Vizyon AKADEMİ KATILIM SERTİFİKASI Bu sertifika [Katılımcı Adı Soyadı] adlı katılımcının aşağıdaki eğitim programını başarıyla tamamladığını belgeler. Managing Upload & Download in iOS Eğitimi Sertifika Kodu DV-2026XX00 Tarih 15.10.2026 Yetkili İmza DV AKADEMİ

Eğitim Bilgileri

Süre4 gün
SeviyeOrta Seviye
FormatOnline / Yüz Yüze / Hibrit
Sertifika✓ Var
Hemen Bilgi Al
İlgili Eğitimler

Bu Eğitimle Birlikte Tercih Edilenler

iOS ve SwiftSwiftUI ile Modern iOS Uygulama Geliştirme Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

SwiftUI ile Modern iOS Uygulama Geliştirme Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

SwiftUI ile bildirime dayalı modern iOS uygulamaları geliştirmeyi öğrenin; view, state, binding, navigation, animasyon ve async/await konularını uygulamalı kaps

Detayları Gör →
iOS ve SwiftAdvanced iOS Gesture Scripting Automation with Appium Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Advanced iOS Gesture Scripting Automation with Appium Eğitimi

4 günİleriOnline / Yüz Yüze / Hibrit

Appium ve XCUITest ile iOS uygulamalarında karmaşık dokunma hareketlerini betiklemeyi öğrenin; W3C Actions, pinch, zoom, drag-drop ve scroll otomasyonu uygulama

Detayları Gör →
iOS ve SwiftAutomating Built-in iOS Apps and Real Device Testing Using Appium Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Automating Built-in iOS Apps and Real Device Testing Using Appium Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Appium ile iOS yerleşik uygulamalarını otomatikleştirmeyi ve gerçek cihaz testini öğrenin; WebDriverAgent imzalama, izin diyalogları ve CI entegrasyonu uygulama

Detayları Gör →
iOS ve SwiftConfiguring system & protection settings in iOS Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Configuring system & protection settings in iOS Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

iOS cihazlarda sistem, gizlilik ve güvenlik ayarlarını yapılandırmayı öğrenin; parola, Face ID, izinler, ağ, yedekleme ve MDM konularını uygulamalı kapsar.

Detayları Gör →
iOS ve SwiftDevice Deployment and Management for macOS Tahoe and iOS Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Device Deployment and Management for macOS Tahoe and iOS Eğitimi

4 günOrtaOnline / Yüz Yüze / Hibrit

Apple Business Manager, otomatik kayıt, MDM, DDM ve yapılandırma profilleriyle macOS Tahoe ve iOS cihazlarını kurumsal yönetmeyi öğreten uygulamalı eğitim.

Detayları Gör →
iOS ve SwiftExploring the iOS display & interface Eğitimi
Mobil Uygulama Geliştirme Eğitimleri

Exploring the iOS display & interface Eğitimi

3 günOrtaOnline / Yüz Yüze / Hibrit

Human Interface Guidelines, Auto Layout, Dynamic Type, Dark Mode ve erişilebilirlik ile uyarlanabilir iOS arayüzü tasarlamayı öğreten uygulamalı eğitim programı

Detayları Gör →
+90 (501) 369 40 14 WhatsApp [email protected] LinkedIn