2018-01-01から1年間の記事一覧

iOSでインジケータのようなくるくる回るアニメーションを造る - CGAffineTransform

はじめに インジケータを自作する方法です。 標準で搭載されているものでも十分事足りるのですが、アプリの色を出したいときにインジケータの演出もこだわりたいですよね。 提供中のTIME HACKERにも自作のインジケータを導入した方ので、以下のキャプチャの…

Kotlin:時計アプリを作成

はじめに Kotlinで時計アプリを作ってみます。 ゴールは以下の機能を有するアプリを作ることに定めます。 シミュレータ上で日付・時間を表示する。 時間はリアルタイムで更新される。 んで、下記の内容を把握できるかなぁ〜と思っています。 関数の作り方な…

Kotlin:Macでkotlin開発環境を構築(AndroidStudio)

Kotlinで開発するため、AndroidStudioをMacにインストールしてみます! 開発環境って綺麗に構築できないことが多いですよね。 そのため、今回はエラーや失敗など、全部記録! 綺麗にいかない開発環境構築を記載します! 事前に入手した情報 KotlinでAndroid…

XCode10でビルドできなくなった時にやったこと - Multiple commands produce error

XCode10がリリースされ、早速手元にあるXCode9でビルドしたアプリもXCode10用にビルドしようとした際に以下のエラーが発生しました。 error: Multiple commands produce '/Users/{アカウント名}/Library/Developer/Xcode/DerivedData/{アプリ名}-hievebmhhbb…

Apple Watch - Watch OS4 でCoreData等を用いた開発 - Swift4

Apple Watch (Watch OS4) この記事では、Apple Watch (以降Watch OS)の開発にあたっての私なりの開発メモを記します。 また、何の断りがなければ、Watch OSはWatch OS4の事を指しています。 環境としては、 XCode 9.4.x Watch OS 4 (Watch Kit2) での開発で…

Watch OS 2 - WCErrorCodeDeliveryFailed が出てiPhoneとWatchでデータのやり取りが出来ない時の対応

はじめに Watch OS 2からは、Apple WatchがiPhoneアプリから独立して動くことになったので、これまでとは違った書き方が必要です。 この対応を行っている最中に、以下の様なエラーが出て詰まってしまったので、その備忘録を示します。 エラーの内容 WCErrorC…

TIME HACKER Version 1.1.0 ウィジェット対応と新規アイコンを追加しました

いつもTIME HACKERをご利用いただきありがとうございます。 今回のバージョン1.1.0で以下の対応を行いました。 ウィジェットでも記録できるようになりました。 ご要望のあったアイコンを追加しました。 ウィジェットでも記録できるようになりました。 ウィジ…

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にて、パスワードが大量に登録された…

GoogleHome の喋らせ方 - 勝手に喋らせる方法

IoT

はじめに Google HomeはIFTTT連携で声で命令して色んなことをさせることが出来ますが、まだ何かのトリガーをきっかけに自動で喋ってくれるという機能までは提供されていません。 今日は、GoogleHomeを自動的に喋らせる事が出来たので、そのやり方とハマった…

FireBaseの曖昧な点をヒアリングしてみた - 料金や各プランの制限、停止など運用上できる事について

はじめに FireBaseはGoogleが運営するサービスで、リアルタイムデータベースなどいろいろ使えて便利なようです。 基本無料ですが、容量制限などがあります。有料にすれば、その制限を増やせたり、無制限にすることが可能です。 でも、アプリで使ってみようと…

MacにJenkinsをインストールして初期設定を行う

はじめに 今回はMac(High Sierra)にJenkins公式のパッケージよりJenkinsをインストールし、初期設定までを記載しています。 はじめに Jenkinsのインストール 表示されない時 Javaがインストールされていない (Javaのバージョンがあってない) 単純にマシンス…

C# List<T> の使い方 - 要素の追加・検索・Sort・LINQ

2018/03/27 加筆修正。 はじめに C#には配列と似た機能で、Listと呼ばれる概念があります。 Listは配列とは違い、動的に要素の追加や削除ができます。 この記事では、Listの基本的な使い方から、Listを用いた検索やソート、LINQまでを紹介します。 記事のコ…

PlantUMLの使い方 - UML図を描く

2018/3/27加筆修正 はじめに PlantUMLを用いたクラス図を書きます。 今回はクラス図にフォーカスしますが、PlantUMLはクラス図の他にもシーケンス図やオブジェクト図、パターン図、配置図、ユースケース図等、UML設計を行う上で必要な設計は行なえます。 本…

GitKrakenを試してみる

2018/3/27 追加加筆 はじめに GitKrakenのインストールから初回起動、リポジトリ操作やリモートリポジトリの取り込みまで簡単に紹介します。 操作はMac版で行っていますが、おそらくWindows版でもほぼ変わらないとは思います。 はじめに GitKrakenって? Git…

iOS Chartsの使い方 - iOS(Swift)でグラフを作る

はじめに iOSのグラフ描画OSSのChartsを利用してグラフ描画について紹介します。 今回は、後述の通り円グラフを表示させてみます。 はじめに Chartsとは 導入方法 実装方法 各種設定 円グラフを真ん中まで塗りつぶしたい グラフの中央にテキストを表示したい…

KeyHolder Version 2.5.0 カテゴリを2文字表示出来るようになりました

いつもKeyHolderをご利用戴き、ありがとうございます。 今回のバージョン2.5.0で、ご要望を多くいただいておりました、カテゴリの表示を2文字で表示出来るようになりました。 具体的には以下の様に表示することが出来るようになりました。 また、カテゴリの…