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

はじめに KeyHolderに次いでProject.Unknown2作目のアプリ、時間管理系ツールTIME HACKERがリリースされました! デザイン担当のぽぽたです。 この記事ではデザイン視点で、TIME HACKER完成までのいろんなことを紹介させていただこうと思います。 TIME HACKE…

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…

今日のう〜のん3

ふかふかのチュンチュンに挟まれて温もり200%。 幸せなお昼寝のとろけるう〜のんでした。 デザイン担当のぽぽたです。 ちょっと聞いてください、使い始めたペイントツールのCLIP STUDIOがとてもすごいんです。 今回描いた絵の葉っぱも雲も筆でスッと撫でた…

Blender はじめの一歩 vol 1 - オブジェクトの選択・削除と球体をつくる

はじめに 今後のアプリ開発に向けて3D技術の勉強をぼちぼちと。 デザイン担当のぽぽたです。 無料の3DCGソフト、Blenderを一から始めてみようと思います。 文字通り一からですので、少しでもこの勉強が、これから始めてみようという方の 手引きになれたらな…

走る - GIFアニメ

はじめに 今回は人のアニメーションに挑戦してみました。 デザイン担当のぽぽたです。 描き始める前のイメージは抜群の疾走感だったのに、どことなく感じが怒りのノシノシ感に。 「こんなはずでは」というのは絵描きあるあるなので仕方ないです。...ですよね…

リズミカル - う〜のんGIFアニメ

はじめに 最近は、1年前に買ってサボっていた温めていたCLIP STUDIOに引っ越し中の デザイン担当のぽぽたです。 CLIP STUDIOのサポート機能はとてもすごいですね、本当に万能すぎて...私いらないのでは…。 なんだか悔しいので、練習のつもりでCLIP STUDIOで…

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

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

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

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

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

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

エンドレスジャンピング - う〜のんGIFアニメ

気づいたら描いていました...。 デザイン担当のぽぽたです。 少ない枚数をコピー・リピートしただけの単純なものなんですが、これだけでも午前を丸々潰すくらいには時間がかかったので...GIF職人さんは本当にすごいですね。 自分の手でキャラクターが動くと…

今日のう〜のん2

水たまり、どう楽しもう? 王道のチャプチャプもいいけど、水たまり浴も捨てがたい。 お日様を浴びてキラキラの大海原(水たまり)を 真剣に楽しむう〜のんでした。 デザイン担当のぽぽたです。 何を考えているのか何も考えていないのか、よくわからないUnknow…

今日のう〜のん1

落としたアメちゃんはもううまいらるできない... でも雨に溶かされていくのも悲しい... 地面から溶かされてゆくアメちゃんにそっと傘をさしつつ 哀愁に包まれるう〜のんでした。 デザイン担当のぽぽたです。 のんびりと、Project.Unknownマスコットキャラク…

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経由で入…