Swift

try! Swift Tokyo 2019 に参加してきたのでレポートを書いてみた

まず始めに try! Swift Tokyo 2019 の主催者、スタッフの皆さま本当にこの2日間お疲れ様でした。 まだ明日の朝一からのWorkshopが残っていると思いますがTL関係は全部終わったかなと思います。 僕は基本的にエビングハウスの忘却曲線で時間の経過と共に内容…

RxSwift+NotificationCenterの購読機能を使ってキーボードが被らない機能を実装する

概要 今回はNotificationCenterのRxSwiftについて解説していきます。 github.com このページをみるとNotificationCenterにはnotificationのfunctionがあることがわかります。 ということは NotificationCenter.default.rx.notification("", object: nil) と…

今週は try! Swift 2019 のカンファレンスが開催されますね。

先週末は友人の結婚式で大阪に帰省してた 先週は高校時代の同級生の結婚式があったので週末だけ大阪に帰りました。 帰省の際にはいつもスーツケースは一つだけを持参して新幹線に乗って帰ります。 結婚式のために帰るので荷物はスーツ1着と愛用のMBP(MacBook…

WKWebViewのRXデータバインディングを実装する

概要 今回はWKWebViewのRxSwiftのローディング処理について見ていきます。 実はRxSwiftにWKWebViewのものがないためかrxのプロパティがありません。 ただし公式がWKWebViewに対するライブラリを提供していますのでこれをインストールして貰えればrxが使える…

RxSwiftを使ってUIKitのRXデータバインディングを実装する

概要 今回はRxSwiftを使ってUIKitのデータバインディングの実装を見ていきます。 RxSwiftはUIKitの数だけメソッドがあります。 こちらのページがRxで実装できるクラスの一覧です。 github.com めちゃくちゃ多いですね。大体のUIKitをRxで書ける事がわかりま…

Swiftのデリゲートメソッドでデフォルト引数ぽく書く方法

概要 コードレビューの時にデリゲートメソッドの部分で指摘を受けて修正しようと思ったのですが、 なかなかすぐに思いつかなかったので記事として残してみることにしました。 自分への備忘録です。 記事にまとめてみると復習の意味でも結構いい勉強になりま…

RxDataSourceを使ってTableViewのHeaderとFooterを生成してみる

概要 前回はRxDataSourceを使って基本的なUITableViewのテンプレートを作ってみました。 RxDataSource github.com 今回はこのRxDataSourceについて弄ってみてどんな事ができるのかについてより詳しくみていこうと思います。 基本的なstoryboardの配置やソー…

RxDataSourceを使ってUITableViewのデータバインディングを実装するテンプレートを作ってみた

概要 今回はRxSwiftの機能をまとめたUITableView用のデータバインディングライブラリRxDataSourceを使ってUITableViewを実装していく方法を解説します。 github.com RxDataSourceの概要を説明すると Writing table and collection view data sources is tedi…

RxSwiftでUITableViewのセルをタップした時にバインディングされているitemのmodelの情報を取得する

概要 今回はRxSwiftを使ってUITableViewで表示されたセルのitemをタップした時にitemのmodelの情報を取得する方法について解説します。 前回の blog.tamappe.com と似てるようで実は違ったりします。 この方法によりリスト表示のセルをタップして画面遷移さ…

RxSwiftでUITableViewのセルをタップした時の挙動をハックする

概要 今回はRxSwiftを使ってUITableViewで表示されたセルのitemをタップした時の挙動をハンドリングする実装について解説します。 UITableViewDelegateの部分の実装となります。 関数としては Sample.swift func tableView(_ tableView: UITableView, didSel…

UITableViewのRxSwiftデータバインディング、カスタムなnibファイルで連携させる

概要 さて、UITableViewのRxSwiftバインディングも第3回目となりました。 前回はまだnibファイルを使用したカスタムセルの連携実装はしていませんでしたので今回はその連携実装の解説をしていきます。 blog.tamappe.com blog.tamappe.com ここまで行くとより…

UITableViewのRxSwiftデータバインディング、CustomCellを使ったバインディング

概要 前回はUITableViewの基本形を紹介しました。 blog.tamappe.com 他の日本語での記事が検索に引っかかりにくいこともあります。 今回はより実務レベルにシフトしてCustomCellクラスを使ったデータバインディングのやり方について解説します。 開発環境に…

RxSwiftを使ってUITableViewにデータを反映させる、UITableViewの基本形

概要 お馴染みのRxSwiftシリーズです。 今回はUITableViewに関するデータバインディングについて紹介します。 UITableViewが一通り理解できるようになったらUICollectionViewも同じように扱えます。 さらにUITableViewは色々なアプリで採用されているiOSの重…

RxSwiftを使って複数のUITextFieldの状態変化にバリデーションを実装する

概要 今回はRxSwiftを使って3つのラベルのの文字に制限を加えてその制限を満たしたらUIButtonをタップできるようにする実装を行います。 俗にいうバリデーション機能です。 使えそうなところは、 メッセンジャーのメッセージの送信時のチェック ログイン時の…

UITextFieldとRxSwiftを使ってバリデーションを実装する

概要 UITextFieldとUILabelをRxSwiftでバインディングする方法 blog.tamappe.com ではUITextFieldとUILabelを接続してUITextFieldで入力中の値をリアルタイムでUILabelに更新していく方法が分かりました。 とは行ってもRxSwiftを使わない方法でもUITextField…

UITextFieldとUILabelをRxSwiftでバインディングする方法

概要 タイトルで「バインディング」という言葉を使いました。 しかしRxSwift初心者にとってまたiOS開発者にとって一番勘違いを起こしてしまうのがこの「バインディング」だと思ってます。 バインディングと格好良く行っていますが要するにSwiftのクロージャ…

UITextFieldのRxSwift処理の書き方について

概要 UITextFieldのRxSwiftの書き方について調べてみました。 よくあるUILabelに連携してデータをバインディングする処理はまた別です。 超基本的な書き方について説明していきます。 開発環境について Xcode: 10.1 Swift: 4.2 RxSwift: 4.4.0 RxCocoa: 4.4…

RxSwift, UIButtonでUILabelのラベルの文字を変更してみる

概要 こちらがよくQiitaで投稿されるRxSwiftを用いたUIButtonで「バインディング」するとか言われている技術の説明になります。(違いました) バインディングとか行っているのにやっていることは今までと同じ概念(RxSwiftなしでの実装)になります。 開発環境…

RxSwift事始め。UIButtonのタップ実装

概要 RxSwiftを書いていて慣れてきましたので同僚にわかりやすく説明するためメモとして残してみます。 これをみてRxSwiftに苦手意識を持っているエンジニアの手助けができたらいいなと思いました。 開発環境について Xcode: 10.1 Swift: 4.2 RxSwift: 4.4.…

RxSwiftでUIActivityIndicatorViewのローディングを実装する

RxSwiftでUIActivityIndicatorViewのローディングを実装する方法論について記載しました。

Swift4.2で導入された機能 Dynamic Member LoopupでSwiftのコードをよりCOOLにしよう

概要 Swift4.2で導入されたDynamic Member Lookupの機能について紹介します。 といっても使い方は@dynamicMemberLookupのアノテーションを付与すれば使えるようになりますが、この機能でSwiftのコードがどれだけ可読性が上がるのかを理解できるようになりま…

来たるSwift5の新機能をまとめました

概要 1/25(金)の仕事終わりにツイッターでこのようなつぶやきがタイムラインで上がってきていた。 いよいよSwift5か……。https://t.co/q4xK4DOmpm— Kaoru (@TachibanaKaoru) 2019年1月25日 Swift 5 Release Notes for Xcode 10.2 beta とうとう、Swift5がリリ…

SwiftのAlamofire+CodableでAPIクライアントの作成からUnitTestまでを実装する

概要 iOSエンジニアの通信処理の練習用にこんなAPIを作成しました。 herokuで無料枠でデプロイしていますのでお金はかからないはずです。 その代わりにスリープモードなのでアクセスしてもレスポンスが遅いので、2,3回アクセスして起こしてもらう必要があり…

SwiftによるiOS開発でテスト駆動開発 (TDD)を行うチュートリアル

概要 iOSアプリ開発でのUnitTestの取り組み方がわかりませんでしたので下記の記事を参考にしました。おそらく2019年はiOSの業界でもTestの重要性が浸透するのではないかなと思います。 というのもiOSのテストには UnitTest UI Test の2種類のテストが存在し…

PromiseKitを使って非同期処理プログラミングのつらみと卒業しよう(応用編)

概要 前回の続きになります。 PromiseKitを使って非同期処理プログラミングのつらみと卒業しよう(導入編) 原文はこちらになります。 Getting Started With PromiseKit Wrapping in a Promise PromiseKitサポートが組み込まれていない既存のコード、SDKやサー…

PromiseKitを使って非同期処理プログラミングのつらみと卒業しよう(導入編)

概要 今のモバイルアプリの開発ではネットワーク通信の技術がほぼマストで必要になっていますね。ModelとViewを切り分けますがModelからViewにデータを渡すときにはクロージャーなりデリゲートなりを利用します。 今では一回のアクションで2つ以上のAPIを叩…

iOS Test Night #9 まとめ

概要 自分まとめ用として。 二日経つと多分忘却の彼方に飛んでしまうので後でチェックする。 XCTest(再)入門 / tobi462さん Twitter: https://twitter.com/tobi462 BetterSpecsに学ぶ Swiftにおける本当にRSpecライクなテストの書き方 / rockname(ロクネ…

SwiftとKotlinはこんなに似てる!比較用チートシートを公開します

原文 こちらが原文です。 A Comparison of Swift and Kotlin Languages サブタイトル この記事ではSwiftとKotlinの主な類似点と相違点について、実装・スタイル・構文などの重要な詳細を中心に説明します。 SwiftとKotlinは開発者コミュニティを席巻し、両方…

SwiftのRxSwiftでのテストコードをRxBlockingとRxTestを使って導入するチュートリアル [iOS]

概要 RxSwiftでのテストの書き方が分からなかったので海外の記事を参考にすることにしました。 これまで色々なiOSのアプリの開発・運用に携わってきましたが運が悪かったのかテストコードが1行も書かれていないプロジェクトばかりを担当してきました。 もち…

Swiftでのプロトコル指向のプログラミングを考えてみる

概要 Swiftのプロトコル指向プログラミングのベストプラクティスがわからなかったので、海外で販売されている本を読みながらXcodeのplaygroundで挙動を見ながら勉強していきました。 これはその備忘録です。 Introducing protocol extensions (protocol exte…