Swift

Swift 4.2のBatch Modeについて

https://swift.org/blog/swift-4-2-released/ でSupport for batch mode compilation resulting in faster build timesと言及されているものについて。 この件はWWDC 2018のセッションでも紹介がありました: https://developer.apple.com/videos/play/wwdc20…

Swift Package Managerの略称はSwiftPMが推奨

SPMという表記をたまに見かけるけど、Swiftであることがよく分からないですよね。 SPM: 🤨🚫Swift PM: 🤨🤨🚫SwiftPM: 👌✅— Ankit Aggarwal (@aciidb0mb3r) 2018年6月14日 (@aciidb0mb3rさんはAppleの人で、Swift Package Managetの主要開発者の一人です)

NimbleでSwiftコンパイラーのバグ(リグレッション)に遭遇した話

Xcode 10 beta 1(Swift 4.2)でNimbleのthrowAssertion()/raiseException()マッチャーなどを使うとランタイムクラッシュする事象が発生して、その成り行きが面白かったのでここに記します。 ここまで 現象: Objective-Cで定義するメソッドで、引数のクロー…

swift-llvmがLLVM 6.0に追従した模様

これでSwiftのWebAssembly対応もちょっと捗るのかもしれない? swift-llvmがLLVM 6.0に追従したっぽい? https://t.co/SlBrAqYSFE— いけしょー@本書きました (@ikesyo) 2018年3月10日 元々stable-nextっていうブランチで追従してたのをstableブランチにmerge…

MintでSwiftPM製のCLIツールを管理する

Swift界隈では、Swift Package Manager (SwiftPM) で作られたCLIツールが増えつつあって、それのインストールやバージョン管理をどうしようかという問題がある。一部のツールはHomebrewやCocoaPodsでの配布もしているけど、全ては賄えない。となると各ツール…

SwiftでCLIツールを書くためのArgument Parser

SwiftでCLIツールを書く時のArgument Parser(引数やサブコマンドをいい感じに解釈してくれるやつ)の選択肢を書き連ねておきます。これら以外の良い選択肢をご存知の方はぜひ教えてください Commandant Carthageで使われています(というかCarthageの開発…

Trailing Closureを禁止する

SwiftLint 0.22で追加された multiple_closures_with_trailing_closure というルールをご存知でしょうか。これは次のような複数のクロージャを引数に取るAPIを使用する時に、最後の引数のクロージャをTrailing Closureとして渡すことを警告するというルール…

SwiftのSDK overlayとswift-corelibs-foundation

SDK overlay SwiftのSDK overlayというものを耳にしたことはあるでしょうか?これはSwiftのOSSプロジェクトであるapple/swiftの開発において、FoundationやAppKit、UIKitなどのObjective-Cで書かれたシステムフレームワークに対し、SwiftらしいAPIを提供する…

『iOS 11 Programming』の執筆に参加しました&一般販売開始

技術書クラウドファンディングのPEAKSのプロジェクトとして成立した『iOS 11 Programming』に、執筆陣の一人として参加させていただき、先日完成を迎えることができました。また本日からクラウドファンディング参加者に限らない一般販売が開始されました。 i…

Himotoki 3.1.0をリリースしました

WWDC会場のSan Jose McEnery Convention CenterからHimotoki 3.1.0をお届けします。 このリリースではパフォーマンス改善と、Xcode 9への対応(テストコード)が主になります。 Fix perfomance issue caused by Dictionary’s swift_dynamicCast by yudoufu ·…

Swiftのコミッターになりました(なっていました)

https://swift.org/contributing/#commit-access に記載があるように、SwiftのOSSプロジェクトでは、一定の基準を満たすことでコミット権を申請し、得ることができるようになっています。 遡って今年の1月に apple/swift-corelibs-foundation に集中的に取り…

Himotoki 1.5.0をリリースしました

このブログでは昨年末の振り返りエントリー位でしか触れていませんでしたが、SwiftでJSONのデコードを簡単かつ型安全に行うことができるHimotokiというライブラリーを昨年の5月から開発しています。 github.com ikesyo.hatenablog.com 先々週にはなりますが…

Carthage 0.13/0.14をリリースしていました

前回のエントリーに引き続き、Carthage 0.13 および 0.14をリリースしていました。どちらもバグFixメインのリリースですが、0.13ではcarthage other-commandとすると$PATHに存在するcarthage-other-commandを実行するという、いわゆるサブコマンドの機構を実…

Carthage 0.12をリリースしました

昨年のエントリーに書いたように、Carthageのコミッターをしているid:ikesyoです。もう3日前になりますが、最新バージョンの 0.12: All Your Frameworks Are Belong To Usがリリースされました! 今回のリリースで大きなトピックだと個人的に思う以下の3つを…

関西モバイルアプリ研究会 #5 でCarthageの話をしてきました #関モバ

毎月恒例の関西モバイルアプリ研究会 #5で今回も発表させていただきました。会場とに軽食を提供してくださるはてなさんに多謝 今回の資料はこちら。 Carthageについて知りたいn個のこと from Syo Ikeda CocoaPodsと並ぶ依存性管理ツールとして普及が進みつ…

関西モバイルアプリ研究会 #4 でLTしてきました #関モバ

第1回から参加させていただいている関西モバイルアプリ研究会 #4でLTをしてきました。なんだかんだでGoogle I/O ・ WWDC 特別会だった#3以外の3回全てで発表できていて嬉しい限りです! 以下が発表スライドです。 iOSでのFramework導入のおさらい #関モバ fr…

Carthageのコミッター(Collaborator)になりました

先月の2015年6月に、CarthageというCocoaプラットフォーム(iOS/OS X/watchOS)用の依存性管理ツールのコミッター(Collaborator)になりました。 このプロジェクトは元々ReactiveCocoa 3.0のAPIを洗練させるためのショーケースとして始まったという側面もあり、…

Swiftでジェネリックなメソッドの特殊化を行う方法

今日色々とやり取りをしながら、Swiftでのジェネリックなメソッドについてある知見を得たのでまとめておきます。 @_ishkawa @akisutesama gistにコメントしたんですが、型自体をT.Typeとしてパラメータで渡させるのはどうですか— Syo Ikeda / いけしょー (@i…