iOS

レイアウトウィジェットについて

今回はFlutter のレイアウトで使うレイアウトの一部について学習します。 学習するウィジェットはText, Center, Container クラスです。 Text ウィジェット について まずはサンプルコードを書きます。 Text( 'Hello Flutter', style: TextStyle(fontSize: 3…

Flutter におけるボタンウィジェットについて

今回はFlutter で使えるボタンのウィジェットについて学習します。 ButtonWidget の種類について これまでのバックグラウンドがiOSエンジニアでしたのでiOSと比べてみます。 Flutter iOS FlatButton UIButtonと同じ RaisedButton UIButtonが立体的に表示され…

Flutter のState クラスについて勉強する

今回はFlutter の状態を扱う機能であるState クラスについて勉強します。 これまで書いてきた StateクラスはStatelessWidget(静的クラス)でした。 Flutter のState は2種類存在します。 StatelessWidget (静的なState) StatefulWidget (動的なState) よくFlu…

iOSエンジニアがFlutter を触ってみた2

今回は Scaffold と AppBar について勉強しましょう。 Scaffold と AppBar Scaffold はアプリの構成の骨組みみたいなもので家みたいなものをイメージしています。 AppBar はiOS でいうところのNavigationBar そのものです。 では基本構成を見ていきます。 ma…

iOSエンジニアがFlutter を触ってみた

超久しぶりにブログを更新します。 Flutter の基本構成 Flutter アプリの最小限実装 main.dart にこのソースコードを書きます。 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This w…

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

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

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のローディングを実装する方法論について記載しました。

iOSエンジニアがフリーランス案件の面談で良く聞かれる質問集をまとめてみた

概要 転職エージェントは、本当にスゴ腕なのか!?──偽エンジニアを見抜けるか試してみた がツイッターのタイムラインで上がってきたので興味が湧きました。 これは未経験者は必ず読んだ方がいい営業ちょっと出来れば簡単に潜り込めちゃうってことエージェン…

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

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

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…

iOSエンジニアから見たAndroidアプリ開発とiOSアプリ開発の違いについて説明します

概要 iOS開発歴5年のエンジニアが仕事で必死こいて半年ぐらいAndroid開発にアサインした後の 感想を述べたいと思いました。 AndroidとiOSとの開発スタイルの違い iOSエンジニアがAndroid開発に着手する時につまずいたポイントとして UIデザインの設計・UIKit…

おそ松くんで学ぶSwift4.2での「うそ松」判別法

Swift4.2 でのAPIの変更点 Swift4.2 でのAPI変更点である、「New Sequence Methods」 によって、 うそ松の判別法の書き方が下記のように変わります。 (ネタです) let osomatsuBrothers = ["おそ松", "カラ松", "チョロ松", "一松", "ウソ松", "十四松", "ト…