2022年7月29日、インプレスR&D社よりSwift Concurrencyの解説本をリリースしました。 一冊でマスター!Swift Concurrency入門です。 こちらの本は一冊でSwift Concurrencyの機能をほぼ網羅したConcurrency機能の解説本です。 日本語でSwift Concurrencyを学べる解説本はまだ少ないので、Swift 5.5からの非同期処理をうまく書きたい方には必見の本となっています。 詳しい内容はこちらをご覧ください。 同人誌として先にリリースしましたが、商業版も同じ内容となっています。 技術解説本「Swift Concurrency入門」を刊行しました 同人版はBOOTHで販売中です。 https://personal-factory.booth.pm/items/3888109 さて、せっかくリリースしたばかりなのですが、一部のサンプ
こんにちは、モバイルエンジニアの中村(@Kyomesuke)です。 私が担当している kintone の iOS アプリでは、脱レガシーを目指して Apple 製の新しいフレームワークやビルドツールの導入/移行に取り組んでいます。 今回はその取り組みの一つである、ライブラリマネージャーを CocoaPods から Swift Package Manager(SPM)に移行した件について紹介します。 CocoaPods から SPM に移行を決めた理由 サイボウズの開発本部では徐々に Apple シリコン搭載の MacBook が普及しており、ビルド速度の面での開発環境改善が進んでいます。 ただし、ライブラリマネージャーとして CocoaPods を利用しているプロジェクトの場合、環境構築が困難であり新規メンバー参入の障害となっていました。 これは、CocoaPods が Ruby 製である
先日ラクマさんでも同様のツイートがありましたが、実はほぼ同時期にnoteのiOSアプリからもObjective-Cのコードが消えました。 今朝ついにラクマiOSアプリのObjC削除の最後のPRをマージしました。僕が入社してマネージャーを引き継ぎ、約4年かかりました。何で4年もかかったのかは別途ブログにでも書こうと思いますが、とにかく大変で、奇跡的に優秀なメンバーが揃ってみんなで成し遂げることができました。 pic.twitter.com/NY6V5kUhcI — だーくろ (@darquro) August 3, 2022 ちなみに僕が入社した頃のコード量を見てみましょう。(2020年4月) 1332 text files. 1161 unique files. 459 files ignored. github.com/AlDanial/cloc v 1.92 T=0.33 s (35
Swift 5.5 で Swift に Concurrency (並行処理)関連の言語機能が追加されました。これによって、 Swift で非同期処理・並行処理のコードをより簡潔かつ安全に書くことができるようになります。 しかし、 Swift Concurrency は Structured Concurrency や Actor など、多くの人にとって馴染みが薄いだろうと思われる概念を含みます。具体例を通して効率よく Swift Concurrency を習得できるように、本記事では iOS アプリを題材に、 Swift Concurrency 導入以前( Before )と導入後( After )のコードを比較することで、何がどのように変わるのかを紹介します。 なお、 Swift Concurrency 関連の機能は次の三つに大別できるため、本記事の Before & After の例も
こんにちは。会員事業部の岡村 (@iceman5499) です。 普段はクックパッドアプリ(iOS)を開発しています。 先日San Joseで開催されたWorldwide Developers Conference 2019 (WWDC19)に参加し、そこでSwiftUIの発表をうけていくつか調べたことがあるので簡単にまとめておきたいと思います SwiftUIの登場 今年のKeynoteの最後に、SwiftUIという新たなUIフレームワークが発表されました。 SwiftUIはReactやFlutterのような形式でViewを宣言して画面を構築できる、これまで使用されてきたUIKitとは全く異なる形式のフレームワークです (AppleのSwiftUI紹介ページ ) この発表をうけてKeynoteはとても盛り上がっていました。期間中もSwiftUIの話題でもちきりで、セッションも多く開かれてい
はじめに おばんです、あまりにもWebがわからなくて、知り合いのWebエンジニアに聞いたら嘘のようにすっきり理解できた田中です。調べてもわからないことは詳しい人を頼るとうまく返してくれるんだなあとありがたい想いでいっぱいです。 さて今回の記事は、最近テストについて学び始めたのでiOSでテストを始めるために最初に知っておかなければならない環境の作り方とXCTestに関する簡単な内容をまとめます。 検証環境 Xcode 8.2.1 テスト環境の作り方 テストターゲットの追加 プロジェクト作成時の指定方法 プロジェクトを作成する際に、テストターゲットも一緒に作成する場合は下の画像の Include Unit Test にチェックを入れてプロジェクトを作成します。 後からテストターゲットを追加する方法 既存のプロジェクトに後からテストターゲットを追加する場合は、 Xcode > New > Tar
Swiftがオープンソース化されたことにより、私たちでも標準ライブラリの実装を読むことができるようになりました。そこで、今回はOptional型のmap()とflatMap()の2つを読んでみて、どういう違いがあるのかを実装面から考えてみようと思います。 Optional型の定義は、stdlib/public/core/Optional.swift ファイルにあります。 public enum Optional<Wrapped> : _Reflectable, NilLiteralConvertible { case None case Some(Wrapped) : 今更かもしれませんが、Optional型とは様々な型のオブジェクトをSomeのAssociated Valueとして持てるenumのことです。ちなみにWrappedは単なるジェネリック型Tのtypealiasで、上のcase
どうも。赤ワインが一番美味しい季節は秋だと思うのですが、この初春という時期もなかなか乙だと感じる tobi462 です。 今日は Swift 4.2 で追加される SE-0194 について軽くメモです。 ちなみに執筆時点で Xcode 9.4 beta 1 がリリースされていますが、こちらには Swift 4.2 は含まれていないので、現時点では自前でビルドする必要があります。 追記(2018/06/03): 現在は Swift 公式サイトのDownloads の「Swift 4.2 Development」から Xcode のツールチェーンをダウンロードすることができるので、そちらを利用するのが楽でしょう。 追記(ここまで) 今回、Swiftのビルドにあたっては以下の記事を参考にさせていただきました。 https://qiita.com/rintaro/items/2047a9b88d9
モバイルアプリエンジニアの山下です。 Xcodeで開発を進めていく中で、以下のような小さな問題がずっと気になっていました。 ファイルシステムとXcodeのディレクトリ構造で差異が発生する ディレクトリやファイルがアルファベット順にソートされていない 空のディレクトリが放置されてままになっている そこで今回は、XcodeのLintツールである xcprojectlint を用いて問題箇所の検出をしてみました。 インストール ライブラリ依存管理ツールはSwift Package Managerに対応しています。 Swift Package ManagerはCocoaPodsやCarthageと比べて実行するために複数の引数を用いたり少し面倒な部分があったりするので、それを隠したMakefileを用意してくれています。 $ git clone https://github.com/america
SwiftUITabBarControllers & UINavigationControllers are the main controllers for iOS Development.They are a great way to navigate between a set of your ViewControllers. The iOS Clock app is a perfect example of using UITabBarController as the main way to control the app. There are tons of tutorials online on how to create UITabBarControllers and UINavigationControllers using interface builder, but
こんにちは。 連載シリーズ2日目を担当します、クックパッド買物事業部 iOSアプリエンジニアの中山(@LimiterJP)です。 早いもので入社して一年が経ちました。 私は去年4月にクックパッドへ入社しました。 その後6月にアプリ開発を始め2018年9月に「クックパッドマート」のiOSアプリをリリースしました🎉 クックパッドマートは 生鮮食品をスマホアプリから簡単に注文することができる生鮮食品ECサービスです。 従来のネットスーパーや生鮮宅配サービスとは異なり、街の精肉店や鮮魚店などの販売店や地域の農家といった生産者など、小規模事業者や個人事業主が参加できるプラットフォームです。 今日はクックパッドマートのiOSアプリの立ち上げを爆速で行った舞台裏について、 新規開発で大切にしたこと 開発速度を上げるための考え方 新規開発に特化した具体的な手法 の観点でお話します。 新規開発で大切にした
ひとつ注意点ですが、Swiftは書き方の自由度が比較的高いので、チーム開発をする場合は、あらかじめコーディング規約を共有しておいた方が良いでしょう。 Swiftでの命名や慣例のほか、さまざまな指針がSwift.orgにある「API Design Guidelines」にまとめられています。興味のある方は目を通してみてください。 Swift.org - API Design Guidelines インタラクティブ環境でSwiftを触ってみよう 早速ですが、Swiftを触って動作させてみましょう。Swiftはコンパイラ言語でありながら、インタラクティブ(対話的)に実行しながら動作を確認することができます。Swiftに慣れるには、このインタラクティブ環境でいろいろと動作させてみるのが手っ取り早いです。 インタラクティブにSwiftを実行するには、ターミナル(コマンドライン)のREPL(レプル)を
はじめに SwiftのドキュメントやOSS見るとGenericsがよく使われてますね。Genericsが使われた関数や型を理解したり柔軟で汎用的なコーディングをしていくためにもGenericsは学んでいくべきだと思います。今回はGenericsについて学んでいきたいと思います。 Generics in Swift, Part 2のWhy generics?では、Genericsを使う理由として以下の3つが挙げられています。 Type safety Less code duplication Library flexibility Genericsを用いることで指定した要件、もしくは任意の様々な型を扱うことができるので、柔軟で再利用可能な型や関数を定義することができます。 ArrayやDictionaryもGenericsなCollectionです。(詳しくはSwiftらしいコーディングを学
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く