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

こんばんは。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.…

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

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

グーグル検索でここまで感動したことはあっただろうか?

エンジニアのグーグル検索についてのテクニック をまとめたいと思う。 特にiOSエンジニアの場合にはXcodeのコンソール上で意味不明なエラー文言が起きた時には どうやって検索すべきかを悩んでしまう。 プログラマとして日々バグのデバッグの解決法としてグ…

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がリリ…

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

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

Laravelをherokuにデプロイする(データベースはMySQL)

概要 やっとLaravel運用でherokuのmySQLでのデプロイ方法がわかりましたので投稿します。 PostgreSQLはすでに記事に残しています。 Laravelをherokuにデプロイする(データベースはPostgreSQL) では解説に入っていきます。 プロジェクトファイルのPathに移動…

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

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