Z軸にウィジェットを並べるStack

今日はStack について学習します。 Stackレイアウトについて Stack は縦でも横でもなくウィジェットを重ねるためのレイアウトです。 基本的なイメージは前回のColumnやRowと同じ機能で複数のウィジェットを配置するために用いられます。 つまり、ColumnやRow…

Column と Row ウィジェットで複数のウィジェットを配置する

今日はColumn とRow について学習しました。 Flutter のColumn とRow の概念はiOSのUIKitにはないようなUIです。 一つのレイアウトに複数のウィジェットを配置したい場合に使います。 Androidに近い概念があります。 そのためAndroidのレイアウトと比較して…

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

今回は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…

マイプロテインのおかげで筋トレにハマりそう

こんばんは。Tamappeです。約半年間ぐらいブログを放置していました。 2019年3月末付で法人を持ちながらフリーランス活動を停止させることにしました。 2019年4月から正社員に戻ってサラリーマンを再開しました。 法人を持っていたので実質「代表取締役(=社…

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で書ける事がわかりま…

3年後のスマホ業界の時代の遷移を想像してみた

普及しているプログラミング言語はGoogle言語だけとなった世界 おそらく皆が同意すると思うが2010年から2018年までの間はスマホ業界はApple一強の時代であると言い切れる。 5年前なら20代後半がiOSアプリを開発するだけでも圧倒的な有利を取れていた。 だが…

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…

3年後のバックエンド最強言語になりうるGolangの速攻習得メソッドを考える

モバイルアプリエンジニアが、3年後のバックエンド最強言語になりうるGolangの習得メソッドを考えてみました。今アメリカでGolangが流行っているので日本も3年後ぐらいにGolangのステータスが今よりも上がっていると予想した上でのお話です。

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の重…

仕事のプロセスを自動化できたらいいのに、といつも思う

概要 プログラミングは物事を自動化することが目的で上達すればするほど物事が自動化すると思っていた。 しかし実際は全く自動化できないことに最近気付いた。 プログラミングの原則にDRYという原則がある。 DRYとは DRYとはDon’t Repeat YourSelf の略称で…

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