Swiftがオープンソースになって以来、長年議論され続けてきたTyped throwsの提案がついに承認されました。これは、throws節にエラー型を指定できる新しい言語機能であり、Swift 6から導入されます。 Swiftにおけるエラーハンドリングの考え方は、Swift 2でthrows/tr…
![Swift 6のTyped throwsとSwiftにおけるエラーハンドリングの全体像を学ぶ](https://cdn-ak-scissors.b.st-hatena.com/image/square/88b16513502514efabb9791bb886f7932ffcf694/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fdbfb8adf36b44c0e890c62bf3d770e09%2Fslide_0.jpg%3F31462206)
It’s well known that Swift can be used to build software for Apple platforms such as macOS or iOS, but Swift is also supported on other platforms, including Linux and Windows. Building for Linux is especially interesting because, historically, Linux programs written in Swift needed to ensure that a copy of the Swift runtime—and all of its dependencies—was installed on the target system. Additional
はじめに こんにちは。DevRelブロックの@wirohaです。2024年3月22日〜24日に「try! Swift Tokyo 2024」が開催されました。ZOZOはGOLDスポンサー・DIVERSITY & INCLUSIONスポンサーとして協賛し、ブースを出展しましたので現地のレポートをお届けします! 目次 はじめに 目次 会場 スポンサーブース アンケートの回答 印象に残ったセッション Swiftの型推論を学ぼう コード署名を楽しく乗り切る方法 Party、その他 アフターイベント LT1. SwiftPM マルチモジュール構成への第一歩 LT2. SwiftとC++を利用した画像処理プログラミング LT3. Introducing Pkl 感想戦 最後に 会場 会場は前回(2019年)と同じ、ベルサール渋谷ファーストです。try! Swiftのマスコットキャラクター「Riko」ち
先日のtry! Swift 2024にて「Accessibility APIを使ってアプリケーションを拡張する」という発表をしました。 tryswift.jp スライド: speakerdeck.com 台本とアニメーション付きのスライド: github.com サンプルコード: github.com Accessibility APIとはUIテストや自動化システムなどで使われている、別のプロセスからアプリケーションの情報を読み取ったりボタンを押したりなど操作することができるAPIです。 スクリーンリーダーやボイスオーバーなどで自身のアプリケーションを操作可能にすることもAccessibility APIの役割ですが、今回は自身をアクセシブルにすることではなく他のアプリケーションを操作することで機能を付け足したりできる、ということを題材にお話ししました。 VS Codeや一部のIDEではA
Swift is well-suited for creating user interfaces thanks to the clean syntax, static typing, and special features making code easier to write. Result builders, combined with Swift’s closure expression syntax, can significantly enhance code readability. Adwaita for Swift leverages these Swift features to provide an intuitive interface for developing applications for the GNOME platform. GNOME is a p
はじめに 今年はワークショップをさせていただき、とても楽しい思い出となりました! 参加者の Discord にはスライドが展開されていましたが、外部向けになく... いつもは誰かが作ってくれるはずなんですが、ないので個人的に必要でまとめました。 なので、メモ程度に思っていただけますと🙏 また、見つかっていないものもあるので、訂正リクエストもらえますとmm スライド一覧 タイムテーブル順に並べていきます。 Day1 (March 22nd) - 良いアプリケーションをデザインするための感覚の持ち方 (EN: Cultivating a Sense for Designing Great Applications) - AIによる言語学習の変革:DuolingoのAIチューターを深掘る (EN: Transforming Language Learning with AI: A Deep D
はじめに Swift 5.9 から C++ interoperability という機能が入りました。 これにより、C++ と Swift に互換性ができ、直接呼び出せるようになりました! 詳細は WWDC2023 の動画を見てると面白いと思います。 では、何が変わったのかを見ていきましょう! 実装 まずは従来の方法を紹介します。 (Xcode でアプリ開発をしている前提で話します) Swift 5.9 未満で C++ を扱う 今までは3通りの方法がありました。(他にあればコメントくださいmm) C でブリッジする(C++ の機能 extern "C" を使う) Objective-C++ でブリッジする SPM から module.modulemap で公開する 1つずつ見ていきましょう。 ① C でブリッジする(C++ の機能 extern "C" を使う) 前提として Swift は
How Swift Achieved Dynamic Linking Where Rust Couldn't For those who don’t follow Swift’s development, ABI stability has been one of its most ambitious projects and possibly it’s defining feature, and it finally shipped in Swift 5. The result is something I find endlessly fascinating, because I think Swift has pushed the notion of ABI stability farther than any language without much compromise. So
SwiftUI is convenient, but slow I've been sitting on publishing these notes for a while, because I don't want to diminish the work of the talented people that engineered SwiftUI and plowed through years of AppKit and UIKit code to get to this state. But I'd like to draw attention to some performance limitations, in the hope that a SwiftUI engineer might see this and understand pain points that mig
こんにちは、レシピサービス開発部と技術部兼務のヴァンサン(@vincentisambart)です。 Swift Concurrencyに関する中級の記事がまだ多くない気がしていたので、そういう記事を書くことにしました。 Swift Concurrencyの理解を深めたい人にはWWDC21の「Swift concurrency: Behind the scenes」がおすすめです。そのプレゼンの中でDispatchSemaphoreをSwift Concurrencyで使うべきではないと述べられました。 Swift Concurrencyに提供されているツールを見ると、セマフォがありません。でも提供されたものでセマフォを作れないでしょうか?セマフォを使いたい場面が多いわけではありませんが、良い勉強になると思います。 どういうツールが標準で提供されているのでしょうか?safe(安全に使えるもの
SwiftUIで使われる@PublishedをCurrentValueSubjectの代わりに使えるというような記事を見かけたので、それはやめておいた方が良いということを書いておきます。 イベントのタイミングの違い これが唯一の理由ではあるのですが、@PublishedとCurrentValueSubjectでは、Property Wrapperとクラスの違いだけではなく、Publisherとしてのイベントを発行する時のタイミングの違いがあります。@Publishedは「値が変更される前(willSet)」でCurrentValueSubjectは「値が変更された後(didSet)」です。 コードを書いて動作を確認してみます。(Playgroundに貼り付ければそのまま実行できます) import Combine class Sample { @Published var publishe
アプリの設計が語られるときなど、非同期処理の状態管理がしっかり考慮されずにサンプルコードが書かれ解説されていることが多い気がするので、こうした方が良いんじゃないかというのを自分なりにまとめておきます。 一言で書くと、「非同期処理は隠蔽して、その状態を値で表現しよう」です。 なお、この記事での「非同期処理」は「メインスレッドから呼び出されて、別のスレッドで処理が実行されたり待ちが発生して、その完了や結果を遅延してメインスレッドで受け取るまでの一連の流れ」と捉えてもらえると良いと思います。 Viewが非同期処理の状態管理をしている例 例えば、通信処理のような非同期処理を想定して、非同期処理を開始して結果が返ってくるまではインジケータを表示したりUI操作をできなくしたいとします。以下のようなUIの流れです。 import SwiftUI // 非同期処理の結果 enum Result { cas
まえがき Swift5.7から導入される新機能をいくつか抜粋し、触りの部分のみまとめました。 各機能の詳細については、プロポーザルのリンクをご参照ください。また内容に間違いがある場合や正確性に欠く記載がありましたらコメントいただけると幸いです。 まずは分かりやすい箇所から… SE-0345 if let shorthand for shadowing an existing optional variable if letのUnwrapがより短くシンプルになりました let foo: String? = "foo" if let foo { print("foo is unwrapped: \(foo)") }
As Swift is deployed across more platforms, it is important that Swift can be developed on more platforms as well. The Swift Extension for Visual Studio Code provides a cross-platform solution for Swift development supporting macOS, Linux, and Windows. Motivation Swift is held back from extending outside the Apple ecosystem by the lack of a first-class, integrated development environment on non-Ap
try! Swift Tokyo Staff Reboot try! Swift Tokyo Hi there! I'm jollyjoester. (I have been involved in organizing try! Swift Tokyo since 2017.) We are happy to inform you that we have started preparing for the next try! Swift Tokyo 🎉 www.tryswift.co The dates have still yet to be decided, but we will publish the progress on this blog and on Twitter. Please continue to cheer us on. try! Swift Tokyo (
こんにちは、モバイル基盤部のヴァンサン(@vincentisambart)です。 Swift Package ManagerはAppleがXcodeで公式にサポートしている唯一のパッケージマネージャーです。Xcode公式サポートの他に、Swift Package Manager形式でのみ提供されているswift-algorithms、swift-atomics、将来的に期待されているswift-async-algorithmsといった準標準ライブラリを利用できるようになるという大きなメリットがあります。 クックパッドiOSアプリ(以下クックパッドアプリ)で一部の依存パッケージをXcodeのSwift Package Manager対応を使って入れるようにしました。この導入で得たいくつかの知見をまとめました。 XcodeのSwift Package Manager対応 本来のSwift Pa
Apple系デベロッパーの人たちがSwift普及のいかんともしがたい現状について話していたので考えてみた。 サーバーサイド用途 サーバーサイドSwiftは現状あまり利用したいケースが見当たらず、モバイルアプリ開発組織のマイクロサービス開発の共通化においてはJVMが枯れているのでKotlinの方に傾きがち。 WindowsやVSCodeやIntelliJ系の非Xcode系開発環境のサポートのハードルも越えるぐらいモチベーションが必要である。 ただユーザー規模はそこそこあり、DenoやDartやHaskellが有効な程度にはWeb開発用途には使えると思われる。苦労しそうだけど。 Wasm化 Wasmにしてブラウザサイドでコードを動かそうという向きもある。拡張用途では周辺ツールの多いRustやCのライブラリ資産のポートもありレッドオーシャンであることは変わりないが、Swiftに限らずWasmアプ
SwiftUIで利用可能なアニメーションをプレビュー/書き出しできるMac用アニメーション・プレイグラウンドアプリ「MotionScape」がリリースされています。詳細は以下から。 SwiftUIでアプリを開発する際、オブジェクトにアニメーションを追加したい場合がありますが、その際に、SwiftUIで利用可能なアニメーションをプレビューできるMacアプリ「MotionScape」がリリースされています。 MotionScape is your animations playground as a developer. You can see all animations and their parameters in effect with beautifully designed and handcrafted animation examples. MotionScape – Anim
プログラミング言語Swiftを使ったアプリ開発について、実践的かつ効果的な観点からその技法をまとめた書籍です。 - PDF&EPUB 形式 - ページ構成: PDF形式 A5サイズ96ページ # 対象読者本書が対象とする読者は、『クロージャが何か』『DispatchQueue を用いた非同期処理についてのコードを見てどのような順序で処理が起こっているか』『オプショナルを実現している Optional 型』などについて知っていることを推奨します。 他には『RxSwift研究読本』『VIPER研究読本』『Combine framework ガイドブック』などの書籍を読んで、さらにSwiftについて知りたくなった方が読むことも想定しています。 https://swift.booth.pm/items/1076262 # 目次まえがき 本書について 本書がカバーする範囲 本書の構成 本書が想定する
2022.03.16 技術記事 Swift Packageを中心とした構成に変えて、良かったこと・困ったこと by qmihara #ios #swift #skyleap はじめに 日々 iOS アプリを開発されている皆さんこんにちは。 SkyLeap という Web ブラウザアプリを開発している qmihara です。 この記事では、 iOS アプリ開発で誰しも一度は経験したことがあるのではないかと思う project.pbxproj のコンフリクト地獄について、ついに我慢の限界に達し project.pbxproj によるプロジェクト管理から Swift Package を中心としたプロジェクト構成へ移行したことについてお話しします。 背景 SkyLeap の iOS アプリは現在 2 名で開発をしていますが、 2 名での開発においても project.pbxproj のコンフリクト
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く