Firebaseのエラーへの対処 - Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app has already been configured.

はじめに iOSのFirebaseでは、以下を二重に呼ぶ事は禁止されています(クラッシュします) FirebaseApp.configure() この時のクラッシュの内容は以下のようになります。 Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app…

TIME HACKER 伝わる不具合の報告方法とは

はじめに どうも、どうまずです。 今回の新アプリのTIME HACKERでは、テストを中心にプロジェクトへの参加をさせてもらいました。 テストで一番大変だったのは・・・不具合の報告です。 メールで不具合を報告したのに、伝わらない。 不具合一覧の内容が何を…

TIME HACKER メイキング

TIME HACKERリリースしました! TIME HACKERをめでたくリリースすることができました。 まだの人は是非この機会にお試しください! 今回は、TIME HACKERを作るにあたり、その制作過程について記載していこうと思います。 今回の記事では、 どんなUX思想で作…

RealmSwift vs CoreData

はじめに iOSのローカルデータベースとして、これまでは、CoreDataが主流でした。 CoreDataの他だと直接SQLiteを弄ったり、ラッパーとなるFMDBなどのOSSがありましたが、Appleが提供している機能として、やはりCoreDataのシェア率は高かったと思います。 実…

Firebase A/Bテストを試す - Firebase A/B Testing

Firebase A/Bテスト Firebaseが提供しているA/Bテストを利用した記事となります。 この記事では、A/Bテストとは?から、 実際にTIME HACKERアプリで、インタースティシャルの表示頻度を確認する際に、A/Bテストを導入しているので、実際に実装した際の手順・…

TIME HACKER 更新情報

TIME HACKER 更新情報 www.project-unknown.jp このカテゴリでは、TIME HACKERの更新情報を掲載していきます。

GDPRを受けてアプリで対応したこと

GDPR(General Data Protection Regulation)とは 詳しいことは他サイト様に委ねますが、ざっくりというとEUでのデータ保護法則の新しい個人情報保護法が策定され、EU諸国では勝手に個人情報を取得、解析する事ができなくなりました。 ここ最近(2018年)、AdMob…

iTunesConnectで銀行情報の「Account Holder Type」でエラーが起きている時の対処法

はじめに iTunes Connectを開いたら、 こんな画面になっており、Agreements, Tax, and Banking のリンクを開いた際に、以下のように、あまり見慣れないエラーが出て焦りました。 Our records indicate that your banking information is incomplete: Missing…

UIViewからはみ出したViewを見れなくする方法

はじめに UIViewは、初期設定だと画面からViewがはみ出してもそのまま表示されてしまいます。 例えば以下のように高さ230pxのUITableViewCellがあるとして、 UITableViewで表示する際に、最初隠したい為に、44pxとした場合、以下のように崩れてしまいます。 …

UINavigationControllerに複数ボタンを並べる方法

はじめに アプリによっては、ナビゲーションの部分にボタンを複数設置しているものもあります。 提供中のKeyHolder もトップ画面のナビゲーションに複数配置してます。 この記事では、このやり方について紹介します。 はじめに Storyboard上、Xib上で配置 コ…

Quickを使ってSwiftコードのユニットテストを行う - Carthageからの利用

はじめに iOSのユニットテストを行うのに、標準ですとXCTestがありますが、 最近Quickと呼ばれるテストフレームワークがよく使われ出しました。 XCTestも非常に強力なテストフレームワークですが、初見であったり、他の人が記載したテストコードは中々読みづ…

KeyHolder Version 2.5.2 パフォーマンスを向上させました

いつもKeyHolderをご利用戴き、ありがとうございます。 前回のアップデートで、一部パフォーマンス向上の施策を打ったのですが、今回新たにパフォーマンスを向上させる施策を打ちました。 具体的には、パスワードの数が多く登録している時に、アプリを立ち上…

Swift 構造体の使い方 - 基本定義, イニシャライザ, メソッドを扱う

はじめに 構造体とは値型のデータを構造的に持つものです。 特にSwiftの構造体は、その中でメソッドを作成出来たりと、クラスと何が違うねん!と思いますが、 構造体はクラスと違って代入や関数呼び出しの際、データの実態がコピーされ、新しいインスタンス…

Module compiled with Swift 4.0.3 cannot be imported in Swift 4.1: x86_64.swiftmodule エラーの対応

はじめに XCodeのVersionを挙げたら、標題の通りのエラーが発生するようになりました。 詳細には Module compiled with Swift 4.0.3 cannot be imported in Swift 4.1: RxSwift.framework/Modules/RxSwift.swiftmodule/x86_64.swiftmodule Carthage経由で入…

KeyHolder Version 2.5.1 軽微な不具合を修正しました

いつもKeyHolderをご利用戴き、ありがとうございます。 今回のVersion2.5.1で一部操作でクラッシュする不具合の修正を行いました。 ご利用の皆様にはご不便をおかけして大変申し訳ありませんでした。 また、今回のVersionにて、パスワードが大量に登録された…