iOSDC Japan 2018でCarthageのLTをします #iosdc

こんにちは。すでに会社のDeveloper Blogでも公開されていますが、iOSDC Japan 2018でCarthageの最新情報についてLTをします。 https://fortee.jp/iosdc-japan-2018/proposal/860ac149-eb9b-4208-85b4-899ed5804db2 2018/09/02 16:15〜 Track A(5分) iOSア…

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で定義するメソッドで、引数のクロー…

既存iOSアプリへのReact Native導入とcocoapods-fix-react-native

既存iOSアプリへのReact Native導入は公式にドキュメントが用意されている Integration with Existing Apps · React Native その手順に従うと、React Nativeの依存解決にはCocoaPodsを使うようになっている 一方 react-native init で新規にプロジェクトを作…

React Nativeでのクラッシュレポートについて調べてみた

Crash Reporting for React Native apps · Issue #5378 · facebook/react-native · GitHub 雑感としてはSentryがよさそうな雰囲気。App Centerもいいかもしれない。 Crashlyticsとそのラッパー iOS, Androidのネイティブのクラッシュレポートの定番はCrashly…

Pipelineを使うJenkinsで、グローバルの設定でPATHを付け加えたい場合はPATH+EXTRAを使用する

こんばんは。Jenkinsと戯れている今日この頃です。 https://github.com/jenkinsci/workflow-durable-task-step-plugin/blob/0d46ca1475a306abe70250b1b96efaffdf14b763/src/main/java/org/jenkinsci/plugins/workflow/steps/durable_task/ShellStep.java#L60…

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の開発…

Cirrus CIというCIサービスを知った

CI

https://t.co/zjsOmpBksl これで知ったけどCirrus CIというのが出てきてたんですね https://t.co/WooquNGmWc https://t.co/vYIIg0DhYr— いけしょー@本書きました (@ikesyo) 2018年2月14日 OSSプロジェクトなら無料で使える https://t.co/9cGE7mz11y— いけし…

Trailing Closureを禁止する

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

Xcodeのブレークポイントで音を鳴らす

Xcodeのブレークポイントでは音を鳴らすことができて、これは結構便利です。例えばシミュレーターの動作を目で確認する一方で、ブレークポイントを通過したかどうかは耳で確認することができます。シミュレーターの画面を見ながらコンソールのログを追うのは…

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…

関西モバイルアプリ研究会 in 関東で発表しました #関モバ

普段は京都や大阪で開催されている関モバが東京に上陸した!ということで発表してきました。 UISearchBar / UISearchController は結構カスタマイズしにくかったり、iOS 10とiOS 11で見た目が大きく変わり得たり、iOS 11で追加された UINavigationItem.searc…

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 ·…

WWDC 2017に参加してきます

iOSアプリ開発を始めてから8年目にして初めてWWDCに当選し、ただいまサンノゼにやってきています。 初のアメリカ、初の海外一人旅と不安も色々ありますが、この一週間を充実したものにしていきたいと思います。それでは楽しいWWDCウィークを!👋

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

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

いよいよ本日。try! Swiftカンファレンスで登壇します #tryswiftconf

おはようございます。id:ikesyoです。本日から3月4日までの3日間、東京・渋谷で開催されるtry! Swiftカンファレンスのトップバッターとして登壇します。 http://www.tryswiftconf.com/ はてなからはid:cockscombも登壇し、二人体制で臨んでいます! develope…

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つを…

株式会社はてなに入社しました

新年明けましておめでとうございます。年末のエントリーでaikoの年越しライブ直前と言っていたid:ikesyoです。結局ライブが終わったのは2時過ぎ、帰宅したのは4時過ぎでした。そんな私ですが、今年もよろしくお願いいたします。 2016年1月1日付けで株式会社…

2015年を振り返ってみる

2015年も残すところあと数時間。aikoの年越しライブ Love Like Pop 18に向かっている途中/開演待ちに書いています。 色んなところで振り返りエントリーが流れているので、自分も振り返ってみようかと書いてみます。 フリュー 昨年10月から業務委託としてフリ…

関西モバイルアプリ研究会 #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…

逆引きReactiveCocoa: 固定値をRACSignalでラップする

非常に基本的なことですが、あまりはっきりと触れられていない(触れる必要がない?)のが、単純に固定値をラップしたシグナルを生成するケースです。方法自体は単純で、以下のようなメソッドが用意されています。 // 値の場合 RACSignal *singleValueSignal…

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

もう結構前で昨年末か年始からなのですが、自分でもいくつか解説を書いている ReactiveCocoa というObjective-C用のFunctional Reactive Programmingライブラリのコミッターになりました! ReactiveCocoa ちなみに現時点までで19個のプルリクをしていて、マ…