Swift

【swift3】Realmのデータをリセットする

はじめに 僕が開発しているiOSアプリではデータの保存にRealmを使用しています。とても便利なライブラリなのですがスキーマの管理をしっかりしないと使えなくなったり書き方次第ではクラッシュしまくりのアプリになってしまいます。 例えば、 let realm = try! Realm() のようにRealmオブジェクトのインスタンス化する際に、オブジェクトのプロパティを追加してたりすると、 ...

【swift3】assertを使う

iOSアプリの開発をしていて、開発環境だけあえてクラッシュさせたい部分が発生しました。 というのも本番環境では通ってほしくない部分に開発してる段階で通ってしまっていたときに気づきやすいようにするためです。 その際に調べて学んだことをまとめていきます。 環境 swift3.2 ビルド iOSアプリ開発をXcodeでする際に、ある程度コードが書けたらビルドして実行してみると思いますが、開発段階で...

【swift入門】TableViewで無限スクロールを実装しよう

前回まででapiを叩いてTableViewに表示できるようになっています。 今までの実装では起動時にqiitaのapiで最新の20記事を取得しそれを表示するだけで一番下にすぐたどりついてしまいます。 今回は20記事移行も表示できるようにしていきたいと思います。 となったときに最初に取得する記事数を20記事だったのを100記事とか1000記事とかに増やせばいいのではないか、となりますがこれでは ...

UserInterfaceState.xcuserstateの変更を無視する

iOS開発でプロジェクトを作成しているとgitで確認できる変更差分に鬱陶しいぐらいにUserInterfaceState.xcuserstateの変更分が出現します。 こんなかんじ ブランチ移動しようとしたときとかコレのせいで阻まれることがしょっちゅうあって、毎回イラッとします。 gitignoreの設定 このファイルはとくにアプリの機能には関係ないものなのでgitignoreに設定し...

【Swift3入門】画面遷移をコードで実装しよう

今回は画面遷移を実装していこうと思います。 画面遷移を実装するには、 StoryBoardで実装する コードで実行する といった大きく分けて2つのやり方がありますが、今回はコードで実装していきます。 なぜこの2つの選択肢でコードを採用しているかというと、StoryBoardで実装する場合にはSegueを使用しますが、そうした場合に1つのStoryBoardに全てのViewControl...

【swift3入門】ViewModelを作成しよう

はじめに 前回まででTableViewのある程度の機能が実装できました。 ここで機能拡張はおいて設計について考えていきます。 アーキテクチャ 以前にModelを作成しようでModelを作成したと思います。 今回はViewModelを作成します。 現状では記事データの情報はArticleモデルに記述されていますがそれ以外に関してはすべてViewControllerに記述されています。今の段階...

【swift3入門】TableViewCellの高さを可変にする

はじめに 前回Xibファイルのレイアウトを設定しようでTableViewCellのレイアウトを設定しました。 その際に生じた問題点を解決するために、TableViewCellの高さを可変にするということをやっていきます。 現状のレイアウト 現状のレイアウトはこのようになっています。 上のタイトルのLabelは高さが渡ってくる文字列の長さに応じて可変、それ以外は高さが固定値で定義されてい...

【swift3入門】Xibファイルのレイアウトを設定しよう

はじめに 前回Modelを作成しようでモデルを作成しapiから取得したデータからある程度の項目を抽出して使用できるようにしました。 今回は実際に取得した記事情報をXibファイルを使って表示できるようにしましょう。 前回作成したモデル 前回ではこのようにモデルを作成しました。 struct Article { let title: String let body: S...

【swift3入門】Modelを作成しよう

はじめに 前回apiを叩いてTableViewに表示させるでapiからデータ取得をしてその結果をapiに出力するところまで行いました。 ここから新しく機能を追加していきたいところですが、その前にいくつかこの構造での問題点があるのでそこを修正していこうと思います。 前回までの問題点 問題点はどこにあるかというと、前回での取得した記事のデータであるarticlesを[[String: Any]]...

【swift3入門】apiを叩いてTableViewに表示させる

はじめに iOSアプリを開発する上で必須なのがTableViewを使えるようにすることではないかなと思います。 前回TableViewを作成しようでTableViewを作成して表示させる流れをまとめましたが、固定の結果を表示させるしかしませんでした。 今回はapiを叩いてデータを取得し、それを表示させるというところをやっていきましょう! 環境 Xcode 8.3.3 swift 3.1 ...