You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
As part of Swift’s move toward safe, simple, and performant asynchronous programming, we are pleased to introduce a new package of algorithms for AsyncSequence. It is called Swift Async Algorithms and it is available now on GitHub. This package has three main goals: First-class integration with async/await Provide a home for time-based algorithms Be cross-platform and open source Motivation AsyncA
Where the world learns Swift. With more free Swift tutorials than any other site, Hacking with Swift will help you learn app development with UIKit and SwiftUI. Search the site, or choose a learning path below. Start Learning Ready to take your first steps with app development? We have a massive curriculum that teaches Swift with both SwiftUI and UIKit using real-world projects – all free. GET STA
Kotlinの言語思想として Multiplatform Programming というテーマが掲げられている (2021/05/05時点まだ Alpha だけど) Kotlin Overviewのセクションの一番上に Multiplatform Programmingのセクション があるくらい Kotlin Multiplatform の概念は下図の通りで、Server, Web Frontend, Mobile Appまで全て一貫してKotlinで書ける未来を目指している (https://kotlinlang.org/docs/multiplatform.html より) Kotlin Multiplatform Mobile (KMM) はこの中でもさらに Android-iOS間でのコードの共有 に焦点を当てている この辺りの概要は以下のスライドが非常にわかりやすい https:
This is an intermediate to advanced book, focusing narrowly on how to use the Combine framework. The writing and examples expect that you have a solid understanding of Swift including reference and value types, protocols, and familiarity with using common elements from the Foundation framework. If you are starting with Swift, Apple provides a number of resources to learn it. There are truly amazin
Swift 5.5 で Swift に Concurrency (並行処理)関連の言語機能が追加されました。これによって、 Swift で非同期処理・並行処理のコードをより簡潔かつ安全に書くことができるようになります。 しかし、 Swift Concurrency は Structured Concurrency や Actor など、多くの人にとって馴染みが薄いだろうと思われる概念を含みます。具体例を通して効率よく Swift Concurrency を習得できるように、本記事では iOS アプリを題材に、 Swift Concurrency 導入以前( Before )と導入後( After )のコードを比較することで、何がどのように変わるのかを紹介します。 なお、 Swift Concurrency 関連の機能は次の三つに大別できるため、本記事の Before & After の例も
protocol P1 { associatedtype T func some(x: T) func some2(x: T) } class C1: P1 { func some(x: Int) { print(x) } /* // ambiguous inference of associated type 'T': 'String' vs. 'Int' func some2(x: String) { print(x) } */ func some2(x: Int) { print(x) } } class C2: P1 { func some(x: Int) { print(x) } // OK func some2<T>(x: T) { print(x) } }
結論 絶対になりません。 ※ただしSwift 5以降に限る。 説明 data(using:)ってどんなメソッド? シグネチャ StringProtocolで規定されているdata(using:allowLossyConversion:)というメソッドに由来します1。実際には、 func data(using encoding: String.Encoding, allowLossyConversion: Bool = false) -> Data? というようにallowLossyConversionにデフォルト引数が設定されているため、そちらは省略できます。即ち、string.data(using: .utf8)はstring.data(using: .utf8, allowLossyConversion: false)のことです。 ちなみにDataはFoundationで定義されている
What is wrong with you, Python?!Python is by far the most used language in machine learning, and Google has a ton of machine learning libraries and tools written in it. So, why Swift? What's wrong with Python? To put it bluntly, Python is slow. Also, Python is not great for parallelism. To get around these facts, most machine learning projects run their compute-intensive algorithms via libraries w
最近業務でObjective-Cを使ってプロダクションのコードを書くことが増えてきました。Objective-CからSwiftへの移行を進めつつも相互にコードを利用することも多く良い勉強になっていたのですが、AnyとAnyObjectの違いをなんとなくIDEのエラーメッセージなどからなんとなく理解したまま使っているだけできちんと理解していない気がしたのでこの機会に改めて調べてみることにしました。 AnyObject あらゆるクラス、またはClass only protocolの具象型として利用でき、型付けされていないオブジェクトの柔軟性が必要な時、ブリッジされたObjective-Cのメソッドとプロパティを使用する場合にAnyObjectを使用します。 型付けされていないオブジェクトとして利用したり class ClassCat { let name: String init(_ name
はじめに SwiftでJSONのパースを行う際はCodableが非常に便利です。 サーバとの通信のレスポンスではSnake Caseが使用されることが多く、 iOSアプリ内ではCamel Caseが使用されることが多いです。それらの相互の変換がJSONDecoderのkeyDecodingStrategyを使用すると簡単に行えますが、 CodingKeyと併用した際に少しはまったポイントがあったため共有します。 なお、keyDecodingStrategyに関しましては別記事に記載していますので、そちらをご確認ください。 検証環境 以下の環境を使用しています。 macOS Mojave Version 10.14 Xcode Version 10.0.0 発生事象例 以下のように、サーバからの通信では姓に該当する名称がfamily_nameで返ってきますが、アプリ内ではlastNameとし
プロトコルを使うメリット 複数適用できる 柔軟性が高い 抽象化できる 基本文法 多言語でいうインターフェース classやstructやenumなどで使える。 複数適用可能 @objc optional なメソッドを定義できる デリゲートで使う ドキュメント Extensionで読みやすく protocol SomeProtocol { var computedA: String { get } func methodA(_ str: String) func methodB(a: Int, b: Int) -> Int } class someClass {} extension someClass: SomeProtocol { var computedA: String { return "a" } func methodA(_ str: String) { print(str) }
Android/iOSのテスト自動化に関する知識を共有する勉強会「年末だよ Android/iOS Test Night - 2019」が2019年12月16日に開催されました。DeNAのAndroid・iOSの各PFからテスト自動化・CI/CDに知見のある登壇者を招いてLTを実施。「2019年のSwiftモック事情」に登壇したのはikesyo氏。登壇資料はこちら 2019年のSwiftモック事情 ikesyo氏:では「2019年のSwiftモック事情」というタイトルで発表させていただきます。よろしくお願いします。 まず自己紹介です。ikesyoと言います。ふだんは京都のはてなという会社で働いていて、スマートフォンアプリの開発の仕事をしています。専門はiOSで、Swift大好き人間なんですがAndroidやReact Nativeも書いたりしています。swift-corelibs-foun
プライベートで開発していたアプリも無事リリースでき スッキリ晴れやかな気持ちになったので、去年に続き今年もポエムを書きます はじめに 仕事の方で、新規案件を行うにあたり、RxSwiftとFluxを採用して開発することにしました。 (ディレクトリ構成はducks、View部分はAtomic designを参考にしています) 悩む所は諸々に出てくるのですが、良い感触を得ているので そのあたりの話を書いていこうと思います。 (Rx要素は薄いです) Fluxってなに? だいたいどんなものかは知ってると思いますので、こちらを参考に。 facebook Flux with RxSwift iOS meets Flux なぜFluxにしたの?? 決定した理由はこちら。 状態の変化が色々とあるアプリを作ることになった。 状態を管理するというStoreという役割がFluxにある。 単一方向なフローで、状態の
The equivalence of observer pattern (Observable<Element> sequence) and normal sequences (Sequence) is the most important thing to understand about Rx. Every Observable sequence is just a sequence. The key advantage for an Observable vs Swift's Sequence is that it can also receive elements asynchronously. This is the kernel of RxSwift, documentation from here is about ways that we expand on that id
追記 - iOS15の対応表も追加しました。(間違いある場合はご指摘ください) - ※注意:本記事は Xcode 13.0 beta の環境で動作確認したものです。正式版では動作が変わる可能性もあります。 前置き とりあえず、SwiftUIチュートリアルを触り、後半の方はサク読みで一応見てみたが、、、 いざ、自分が作りたいものを考えたときに、あれ、、、画面遷移とかどうすんの?書いてなくね? っていうのがチュートリアルの所感。。。(書いてあったらごめんなさいw) ってなわけで、実践的に使えそうなものを調べたり、リファレンス読んでごにょってたりして、、 それをまとめた感じです。 UIKitとの対応表 iOS15~ Views and Controls SwiftUI UIKit Note
SwiftUI、Combile、RealityKitなどiOS 13以上の環境にしか存在しないフレームワークを使用するアプリをiOS 12以下の環境で実行すると、その機能を実際に呼び出さないようにしていたとしても、起動時にダイナミックリンクに失敗してクラッシュしてしまいます。 dyld: Library not loaded: /System/Library/Frameworks/RealityKit.framework/RealityKit Referenced from: /Users/katsumi/Library/Developer/CoreSimulator/Devices/7D73BD02-5C30-4723-9023-4D19BCDAE1AA/data/Containers/Bundle/Application/A9E00179-1DDD-4051-9207-7CC6C9DC
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く