iOS 13 bir tanıttı Muazzam geliştiriciler için değişikliklerin toplanması: yeni API'ler, yeni çerçeveler, yeni UI değişiklikleri ve daha fazlası. Oh ve Marzipan! Yoksa şimdi Proje Katalizörü mü olmalı? Ve karanlık mod! Ve iPadOS! Ve, ve, ve…!

Bir makalede değiştirilen her şeyi toplamaya çalışmak yerine, bu makale burada daha küçük birçok makalenin içine bir atılma noktası olarak geliyor – belirli değişiklikler hakkında bireysel küçük eğitimler yazıyorum, bunları yuvarlanan bir temelde yayınlıyorum ve bağlantılar ekliyorum İşte.

Büyük şeylerle başlayalım…

SwiftUI: uygulamalar tasarlamanın yeni bir yolu

Xcode 11, SwiftUI olarak bilinen uygulamalarımız için kullanıcı arayüzünü tasarlamanın yeni bir yolunu tanıttı. Uzun süredir, kullanıcı arayüzümüzü bir storyboard'da görmenin yararları arasında veya programatik kullanıcı arayüzüyle daha sürdürülebilir bir seçeneğe sahip olmamız gerektiğine karar verdik.

SwiftUI, Swift kodunu görsel önizlemeye dönüştüren bölünmüş ekran deneyimi sağlayarak bu ikilemi bir kez ve herkes için çözer ve bunun tersi de – bu özelliği denemek için macOS 10.15'in kurulu olduğundan emin olun.,

Makalemin tamamına bak Swift UI, Swift'de bildirimsel kullanıcı arayüzleri oluşturmamıza izin veriyor. daha fazla bilgi için.

UIKit: Karanlık mod, macOS ve daha fazlası

WWDC18'de Apple, iOS uygulamalarını macOS'a taşımayı kolaylaştıran yeni bir teknolojinin önizlemesini duyurdu. Daha önce “Marzipan” adıyla bilinen ancak şimdi Proje Katalizörü olan bu teknoloji, XOS'ta macOS'u iOS uygulamaları için bir hedef olarak ekleyen tek bir onay kutusuyla destekleniyor, çünkü bu, işe yaramaz olduğu anlamına geliyor. başlamak için çoğumuz için çok zaman ayırın.

Not: Project Catalyst'i kullanarak iOS uygulamalarını macOS'ta göndermek macOS 10.15 gerektirir.

Kaçınılmaz olarak, uygulamanızın masaüstünde daha iyi çalışmasını sağlamak için gereken bir avuç tweaks vardır – WWDC'de buradaki insanlardan en iyi uygulamaları buldukça aşağıdaki bağlantıları ekleyeceğim!

Ayrıca, iOS 13 bize hatırlayabildiğim kadar uzun zamandan beri talep edilen sistem çapında bir karanlık mod getiriyor. Çoğu uygulama kutudan çıktığı halde çalışmasına rağmen, resminizin her iki arka planda da iyi görünmesini sağlamak için yapılacak bazı ek çalışmalar var ve özel renkler kullandıysanız, varlık kataloğunu kullanarak açık ve koyu alternatifler sağlamalısınız. .

Bahşiş: Karanlık modun etkin olup olmadığını tespit etmek istiyorsanız makaleme bakın. İOS'ta karanlık mod nasıl belirlenir.

İOS 13'ten önce, iOS geliştiricileri bu gibi yerleşik renkler kullandı. UIColor.red veya .mavi, kendileri gibi yarattıkları renkler UIColor (kırmızı: 0.1, yeşil: 0.5, mavi: 1, alfa: 1)ve varlık kataloglarından adlandırılmış renkler. Ancak, iOS 13'te karanlık modun tanıtılmasıyla daha dikkatli olmamız gerekiyor: sadece renkler .kırmızı veya .mavi Bir görünüşte iyi görünebilir ancak diğerinde görünmeyebilir ve belirli renkleri kullanmak aynı sorundan muzdarip olabilir.

UIColor iOS 13'te, kullanıcının özellik ortamına göre otomatik olarak uyarlanan yeni anlamsal renkler ekleyerek burada çok yardımcı olur. Daha fazla bilgi için makaleme bakın. İOS uygulamanızın karanlık moda uyum sağlamasına yardımcı olmak için semantik renkleri kullanma

Çok fazla dikkat çekmeyen bir şey, UIKit'in bazı küçük tasarım yenilemelerini görmüş olmasıdır – iOS 7'nin aşırı düzlüğü WWDC18 logosunu hatırlatan güzel bir orta zemine geri döndürülüyor. Örneğin, UISegmentedControl Şimdi sadece düz mavi çizgiler olmaktan ziyade arka plandan kaldıran yumuşak bir 3D efekti var; küçük, ama çoğu hoş geldiniz.

Artı – ve bunun gelmesi için 13 iOS sürümü aldığına inanmanın zor olduğunu kabul ediyorum – UIImage birçok ilavesiyle çarpıcı bir genişleme gördü (çok) Geri ve ileri köşeli çift ayraçlar gibi genel sistem gliflerini temsil eden grafikler. Bunlar hatırlayabildiğim kadarıyla macOS'ta yerleşiktir, ancak iOS bugüne kadar sadece bir avuç sistem ikonuyla birlikte gelir.

Yeni sembollere erişmek için, yeni UIImage (systemName :) başlatıcısı. Bu, yüklemek istediğiniz simge adı için bir dize alır; olasılıkla olasılıkların listesi 1500'den sonra çok iyi gider – aksi takdirde çok sayıda simge gerekir. Bu yüzden Apple, hepsine göz atmak için SF Symbols adında özel bir macOS aracı yaptı. buradan indir

Özel ağırlıklarda nasıl simge oluşturulacağını ve özel Dinamik Tip fontlarını nasıl eşleştireceğinizi gösteren bir makale yazdım: Uygulamanızda sistem simgeleri nasıl kullanılır?. Kabul etmelisiniz: Birkaç ağırlıkta 1500 glif çekme yeteneği oldukça dikkat çekici.

Çoklu pencere desteği oluyor

Bir dahaki sefere yeni bir Xcode projesi oluşturduğunuzda, AppDelegate'in ikiye bölündüğünü göreceksiniz: AppDelegate.swift ve SceneDelegate.swift. Bu, iPadOS ile gelen yeni çoklu pencere desteğinin bir sonucudur ve uygulama temsilcisinin çalışmalarını ikiye böler.

İOS 13'ten itibaren uygulama temsilciniz şunları yapmalıdır:

  1. Uygulama süresince ihtiyaç duyduğunuz tüm verileri ayarlayın.
  2. Sizinle paylaşılan bir dosya gibi uygulamaya odaklanan olaylara yanıt verin.
  3. Push bildirimleri gibi harici servisler için kaydolun.
  4. İlk sahnelerinizi yapılandırın.

Tersine, faliyet alani, sahne delegeler, uygulamanızın kullanıcı arayüzünün bir örneğini ele almak için oradalar. Dolayısıyla, kullanıcı uygulamanızı gösteren iki pencere oluşturduysa, her ikisi de aynı uygulama temsilcisinin desteklediği iki sahneniz vardır.

Bu sahnelerin birbirinden bağımsız olarak çalışmak üzere tasarlandığını unutmayın. Yani, senin uygulama artık arka plana hareket etmiyor, bunun yerine ayrı sahneler yapıyor – kullanıcı başka birini açık tutarken arka plana taşıyabilir.

Haptics artık herkesin kişiselleştirebileceği bir şey!

iOS 13, Taptic Engine'in titreşimleri nasıl ürettiğini tam olarak kontrol etmemizi sağlayan yeni bir Core Haptics çerçevesi sunar. Nintendo Switch'ten HD Rumble ile karıştırılmış PS4'ten DualShock sistemini ve orada yarı yolda olduğunuzu düşünün, ancak Core Haptics bize anlamlı Titreşimlerin nasıl çalıştığı ve – kritik olarak – zaman içinde nasıl geliştikleri üzerinde daha hassas kontrol.

Bu, bir örneğini ateşleyebileceğiniz anlamına gelir CHHapticEngine Uygulamanızın haptik oluşturmaya başlaması gerektiğinde, geçici efektler (tek dokunuşla) veya sürekli efektler (vızıltı) oluşturmak, bunların tümü efektin yoğunluğu ve hissi (“keskinliği”) üzerinde olağanüstü kontrol sahibi olur. Daha etkileyici bir şekilde, yeni dokunsal sisteme, haptiklerinizle birlikte çalması için sesler verilebilir ve ikisinin senkronize edilmesini sağlar.

Şimdi, bunların tümünün etkileyici olduğunu biliyorum, ancak birkaç şartı var:

  • Görebildiğim kadarıyla bazı önemli yazılar yazmanız gerekiyor JSON daha karmaşık efektler oluşturmak için Apple’ın AHAP formatını (Apple Haptic ve Audio Pattern) kullanıyor. Birkaç basit efekt yaratabileceğinden şüpheleniyorum, ancak paylaşabileceğimiz açık kaynaklı bir efekt koleksiyonu olsaydı harika olurdu.
  • İsterseniz kodda haptikler oluşturabilirsiniz ve AHAP'ı kullandığınız aynı kontrol aralığına sahipsiniz.
  • Evet, bu aynı zamanda yaratabileceğiniz anlamına gelir ses koddaki haptics, pan, pitch, hacim, saldırı, çürüme ve diğer şeyleri beğenmeyi belirterek oldukça güçlü.
  • Temel Haptikler, haptiklerde hangi ritmin kullanılacağını bulmak için sesinizi sihirli bir şekilde taramaz – her bir dokunuş için zaman damgası uygulamanız gerekir. Çekirdek Haptics irade bu sesli zaman damgalarının dokunsal zaman damgalarınızla eşleştiğinden ve senkronize kaldıklarından emin olun.
  • Taptic Engine'i aktif tutmakla ilgili bazı yüksek güç maliyetleri vardır, bu nedenle dokunsal efektler bir süre kullanılmadığında otomatik olarak gücü kesmeyi seçebilirsiniz. isAutoShutdownEnabled senin için doğru CHHapticEngine.

Core Haptics ile başlamanıza yardımcı olacak bir makale yazdım: Core Haptics kullanarak özel titreşimler nasıl oynanır?

Vizyon, makine öğrenmesi için büyük bir yükseltme aldı

Apple’ın Vision çerçevesi her zaman arkasında bir miktar ML olmuştur, ancak Neural Engine gibi iPhone X’de saniyede 600 milyar işlem yapabilen ve göze çarpan 5 trilyon iPhone XS’de ikinci bir işlem yaptığımızda, şimdi daha yoğun bir çalışma gerçekleştirmek için Apple’ın geliştirdiği çerçeveleri görüyoruz.

Böylece, Vizyon birkaç anahtar yoldan yükseltildi:

  • Artık hızlı bir modda (yani olan) belgeler üzerinde optik karakter tanıma (OCR) gerçekleştirebilir çok hızlı) veya bir doğru Mümkün olan en yüksek doğruluğu elde etmek için her türlü ekstra ML hesaplama işlemini yapan mod. Bu şimdilik yalnızca İngilizce gibi görünse de, olağandışı veya özel terimler için doğru bir şekilde yardımcı olması için Vision'a özel bir sözlük sağlayabiliriz.
  • Bu belirginliği tespit edebilir (okuma: önembir sahnedeki bir nesnenin nesneye dayalı taramasını (arka planda olanı veya arka planda olanı ön planda olanı kullanarak) veya dikkat temelli (gözlerinizi bir sahneye gitme ihtimalinin yüksek olduğu yerlerde) kullanarak. bunun gerçekleşmesi için çok sayıda ML eğitimi verildi, ancak işe yarıyor – muhtemelen bize fotoğrafların çeşitli kısımlarını yakınlaştırmak için kullandığı işlevsellik ile aynı işlevi veriyor?
  • Birinin bir fotoğrafının, ne kadar merkezlenmiş olduklarını temel alarak ne kadar iyi olduğunu belirleyebilmemizi sağlayan yeni bir yakalama kalite sistemi var.

Metin algılamaya başlamanıza yardımcı olacak bazı örnek kodları bir araya getirdim: Görüntüdeki metni algılamak için VNRecognizeTextRequest’in optik karakter tanıma özelliğini kullanma.

CryptoKit bize kolay karma, şifreleme ve daha fazlasını sağlar

CommonCrypto çerçevesi her zaman hızlı kriptografi yapmak için uygun olmuştur, ancak sevmesi zordu – kriptografi nadiren kolaydır ve bazen CommonCrypto'nun sahnelerin gerisinde ne kadar iş yapıldığını gerçekten hissetmenizi istedi.

Bu, karma, şifreleme ve genel anahtar şifrelemesi gibi görevler etrafında pek çok yardımcı sarmalayıcı sağlayan CryptoKit adlı yeni Swift-only çerçevesi sayesinde iOS 13'te değişmiştir.

Başlamak istiyorsanız, buraya bir makale yazdım: Bir String veya Data örneğinin SHA karması nasıl hesaplanır.

VisionKit belgeleri hızla taramamıza izin veriyor

Apple’ın Notes uygulamasında yerleşik temiz bir belge tarama sistemi vardır ve artık aynı işlevsellik VisionKit adında yeni bir mikro çerçeve içinde bize sunulmaktadır. Şu andaki tek işi, belge taramak ve sonra ne bulduğunu okumak için özel bir görüntü denetleyici sunmak.

Buraya bazı örnek kodlar yazdım: VNDocumentCameraViewController kullanarak belgeler nasıl algılanır.

Çekirdek görüntü bir diğeri Temizlemek

Yavaş yavaş, yavaş Çekirdek Görüntü Swift yüzyılın içine sürükleniyor. Geçen yılın sonunda, tüm Core Image dokümantasyonunun Apple’ın “arşiv” dokümantasyon alanına taşındığını fark etmiş olabilirsiniz; bu, güncellenmediği ve kaybolacağı anlamına gelir. Şimdi, yine de Apple, Core Image'ı dizge yerine gerçek derleyici tarafından zorlanan türlerde daha güvenli hale getirme yolunda ilk adımı atmış gibi görünüyor.

Bunun ilk adım olduğunu söylüyorum çünkü a) dokümanları neredeyse tamamen “Genel bakış yok”, b) Yeni API’nın hiçbiri aslında ilk Xcode 11 beta’da çalışmıyor gibi görünüyor. Yine de, doğru yönde bir adım!

Gelmek için daha fazla!

Bu sadece benim iOS 13'teki ilk geçişim – WWDC'de ne üzerinde çalıştıklarını ve nihayet konuşabileceklerini görebildiğim kadarıyla Apple insanlarıyla konuşmakla meşgulüm. Onlardan örnekler ve rehberlik elde ettikçe hepsini denemekle meşgul olacağım, sonra olabildiğince hızlı makalelere dağıtacağım – bu alanı izleyin.

Apple insanları: etkinlikten beni kapmaktan veya bana bir e-posta göndermek için çekinmeyin paul@hackingwithswift.com – Üzerinde çalıştığınız her şeyin herkese açık olduğunu duymayı çok isterim!



Source link

Kategoriler: Genel

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir