炊きたてのご飯が食べたい

定時に帰れるっていいね。自宅勤務できるっていいね。子どもと炊きたてのご飯が食べられる。アクトインディでは積極的にエンジニアを募集中です。

Swift の勢いで Kotlin 書いたら 3 行で 3 つのクラッシュを起こした事に対する反省文

2017 年アクトインディ アドベントカレンダー が始まりました。今年で 3 年目になります。1年目、2年目は技術寄りの投稿が多かったのですが、今年は、社員全員に公募を募り、様々なテーマで書いて行きますので、是非、今後の記事も楽しみにしていただければ…

Android での二度押し防止施策

アクトインディ Advent Calendar 2016 23日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net Kotlin 1.0.…

iOS エンジニアが Android を開発する時のコンポーネントやウィジェットの比較表

アクトインディ Advent Calendar 2016 21日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net 今までは iO…

Kotlin + RecyclerView で OnItemClick を実装する

アクトインディ Advent Calendar 2016 20日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net 本日の記事…

Kotlin + Retrofit2 + Gson で API 通信を実装する

アクトインディ Advent Calendar 2016 18日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net Kotlin 1.0.…

Glide のメソッドをお借りして画像の向き(orientation)を取得する

アクトインディ Advent Calendar 2016 16日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net Kotlin 1.0.…

(Android)動的に変化する TextView にもっと読むボタンを設置する

アクトインディ Advent Calendar 2016 14日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net 今回は Text…

メソッド数調査、エミュレーターのファイルダウンロードなどを楽にする Android プロジェクト用のシェルスクリプト

アクトインディ Advent Calendar 2016 13日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net 今回の記事…

Realm InMemory を使って Activity 間でのデータ同期をスムーズに行う

アクトインディ Advent Calendar 2016 9日目の記事になります。子どもとおでかけ情報アプリ「いこーよ」は、マップ上で簡単におでかけ先を探せる検索アプリです。記事を見てくれたパパさん、ママさん、ぜひ一度使ってみてください^^ iko-yo.net Kotlin 1.0.5…

Kotlin で Realm を操作する時に気をつけていること

アクトインディ Advent Calendar 2016 4日目の記事になります。「若者の結婚願望 子供時代、体験多いと強く 」といった記事が日本経済新聞に書かれていました。 www.nikkei.com 子ども時代に家族で沢山思い出を作っていると、将来、結婚して家庭を持ちたいと…

RecyclerView で Section を表示する

アクトインディ Advent Calendar 2016 2日目の記事になります。2015年の11月にアクトインディに入社して 1 年が経ちました。 入社してからは iOS アプリの開発に携わらせてもらい、現在は鋭意 Android アプリの開発をしています。 子どもとのお出かけ先に困…

Swift2 - storyboard で 高さ可変の ScrollView を autolayout で設定する

多くの場面で、高さが可変の ScrollView を作成する事があると思います。むしろ Web と連携するアプリなんかはそのようなケースの方が多いんじゃないでしょうか。極力ストーリーボードの autolayout を使って、高さ可変の ScrollView を設定する方法を紹介し…

Swift2 - Storyboard で指定した AttributedText のフォントサイズが反映されない

テキストの行間を広げたくて storyboard で UILabel の Text のタイプを Plain から Attributed に変えて font size を 12, line spacing を 5 で設定してあげたところ storyboard ではきちんとフォントサイズと行間が効いていたのですがシミュレーターで確…

Swift2 - クラスの継承とプロトコルの適合(採用)の両方の条件を満たす条件をジェネリクスで書く

Swift2.2, Xcode7 modal で呼び出す画面は、どの ViewController からも呼び出される可能性がある為、ページ遷移用の Utility に定義する様にしています。その時に困るのが、 UIViewController を継承して、かつ、モーダルを閉じる delegate ( protocol )を…

Swift2 - Quick + Mockingjay で Alamofire の非同期通信のテストをする

API との通信をテストする時、実際にリクエストを投げてしまうとサーバーへの負荷やテスト時間など、コストが多くかかってしまうので、Alamofire のリクエストを Quick と Mockingjay を使ってスタブする方法を紹介したいと思います。 Quick: RSpec 風に書け…

Swift2 - 画像アップロードと通常のリクエストを分けてユーザー体験を向上させる

リクエスト回数は極力減らした方が良いのでは?といった方針から、画像をアップロードする処理と通常のテキスト情報を送信する処理を一つのリクエストで行っていたのですが、実際に実装してみたところ、リクエストが完了するまで画面にローディングを表示し…

Swift2 - SDWebImage の placeholderImage や失敗時の画像をセットする Utility クラスを作成する

SDWebImage を利用していると、読み込み中に表示する placeholderImage や、取得が失敗したことを表す画像のセットを毎回書くことになるので、アプリ内で共通で利用できる placeholderImage と失敗時の画像を用意して SDWebImage を呼び出すメソッドを定義し…

Swift2 - 円形( circle )の UIImageView と UIButton の作成

円形の UIImageView や UIButton を利用したくなるケースは多いと思うので、カスタムクラスを利用した方法を紹介したいと思います。この方法では storyboard 上で円形にはならないので注意してください。 UIImageView UIImageView を継承した CircleImageVie…

( Swift2 ) Alamofire + ObjectMapper + Realm でリクエストを Realm に自動的に保存する

Swift2.2, Xcode, Realm1.0.0 Alamofire と ObjectMapper を利用して API 通信を行っている場合、リクエストが成功した際のレスポンスをそのまま Realm に突っ込んで保存したいケースがあったりします。前回作成した API クライアント(Swift2 Alamofire + O…

( Swift2 ) Alamofire で有効期限付きの認証用トークンを利用する( refresh token を利用した token 更新)

Alamofire を利用して有効期限付きの token を利用した API call の実装例を紹介したいと思います。 token を http ヘッダーリクエストに含めるのは簡単ですが、トークン の有効期限が切れた際に、リクエストを保持して、リフレッシュトークン を利用してト…

Facebook, Twitter, Line の SNS 連携を取りまとめる LoginModel を作る

Swift2.2, Xcode7 最近は SNS ログインが増えてきたので Facebook, Twitter, Line の各 SNS のログイン処理をプロトコルを使って共通化して書く方法をご紹介します。 Swift でのポリモーフィズムのような実装を Protocol で行う 各 SNS の認証処理を行う Mod…

Swift2 - カメラ、写真のアクセス許可の確認をプロトコルを利用して使いまわす

Swift2.2, Xcode7 カメラ( Camera )や写真(フォトライブラリー)のアクセス許可の設定状況の確認は、複数の ViewController で行いたいケースが多いので、プロトコルで確認するメソッドを定義して、プロトコルを採用した ViewController であれば簡単にア…

Swift2 - textField の値が入力済みかどうかで登録ボタンを押せるようにする

会員登録画面などで nickName を入力したら、登録ボタンを押せるようにして、空だったらボタンを押せなくするような対応です。 isValidated (バリデーション OK )を管理する変数を用意し didSet で saveButton を活性化させたり、非活性にしたりする 前後…

Swift2 - Alamofire のリクエストでネットワークエラーを検知する

swift2.2, Xcode7 API 通信するアプリを開発していると、ネットワークエラーを検知して、アラートを出すといった処理は共通して書きたいものです。 Apple がサンプルとして公開している Reachability を Swift に変換して使うのもアリですが、ネットワーク通…

(Swift2) Alamofire の upload の進捗を通知で受け取ってプログレスバーを表示する

Swift2.2, Xcode7 前回の記事で Alamofire の upload メソッドの API クライアントを作成しました。 (Swift2) Alamofire の upload 用 API クライアントを作成する 今回は upload 用の API クライアントに手を加えて、ファイルのアップロードの進捗をプログ…

(Swift2) Alamofire の upload 用 API クライアントを作成する

前回の記事で Alamofire の request メソッドに対する API クライアントを作成しました。 Swift2 Alamofire + ObjectMapper で API クライアントを作成する この API クライアントを利用すると request は以下のように書くことができます。 API.call(Endpoin…

Google Tag Manager を利用して GoogleAnalytics を導入する

Swift2.2, Xcode7 GoogleAnalytics を iPhone アプリに埋め込むことになり、せっかくだから AB テストとかも行える Google Tag Manager 経由で GoogleAnalytics を導入してみました。導入にあたっては公式ドキュメントがとても参考になりましたが、慣れない…

Enum の switch self がとても便利

Swift2, Xcode7 enum の switch self を使った変数の設定がとても分かりやすく便利でした。以下の例はアプリ内の WebView で表示するアプリのタイトルと URL を enum で定義した例になります。WebView は色々な箇所から呼び出されることが多いので requestUR…

Storyboard で UIButton の規定サイズ以下の大きさを指定する方法 Autolayout 対応

Swift2, Xcode7 UIButton はタップ領域を確保する為、あるサイズ以上に小さくすることができません。ただ、レイアウトの都合上、高さを規定サイズ以下に小さくしたい場合がもしかしたらあるかもしれないので、忘れないように方法をメモしておきます。 Autola…

Storyboard で UIButton に下線を引く方法

Swift2, Xcode7 あまり利用用途はないかもしれませんが「個人情報の取り扱い」や「利用規約」のように UIButton のテキストに下線を引く方法です。 Storyboard のみで対応が可能です。 UIButton を選択して Title を Plain から Attribute に変更 テキストを…