ゆう@あんのうん

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

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

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) での開発で…

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テストを導入しているので、実際に実装した際の手順・…

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も非常に強力なテストフレームワークですが、初見であったり、他の人が記載したテストコードは中々読みづ…

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

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

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

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とは 導入方法 実装方法 各種設定 円グラフを真ん中まで塗りつぶしたい グラフの中央にテキストを表示したい…

UITextFieldで入力判定を行う (UITextFieldTextDidChange)

はじめに 提供中のKeyHolderにて、UITextFieldで入力チェックを行っております。 こんな感じでUITextFieldに何も入力されていない場合は、画面右上の保存を非表示にし、 こんな感じでUITextFieldに入力されている場合は、画面右上の保存を表示しています。 …

Unity 1 Week Game Jam お題 「当てる」

今回も参加しました 今回も参加させてもらいました。 今回は反省すべき点が多くある(期日から1週間遅れた)ので、レポートを書いていきます。 今回も参加しました 作ったゲーム「BountyBommer」 1週目 月曜〜水曜 1週目 木曜〜土曜 1週目 日曜 2週目 月曜〜金…

Blender Mac版 の操作方法や基本機能の使い方

はじめに この記事ではMac版のBlenderをMagic Mouseで操作した際の方法を記載しています。 基本的な操作方法や、アニメーション、ボーンやマテリアルなどの基本機能の操作についてまで触れています。 目次 はじめに テンキーを模倣 ウィンドウ プロパティウ…

UnityでGameObjectが画面上(カメラ内)に居るのか確認する

はじめに UnityでGameObjectが画面(カメラ)の外に居るのか中に居るのかを確認したい時がママあります。 例えば、画面に表示された際に処理を行ったり、画面の外に行ったらGameObject自体を破棄したり。 今日はそのやり方の紹介です。 RendererのisVisibleを…

UITabBarをUIViewController上の処理で非表示にする

はじめに TabBarを非表示にしたい場合、UITabBarController側で非表示にするのではなくて、Tabで表示するUIViewController上の処理で非表示処理を入れるやりかたです。 表示のタイミングでTabBarを非表示にする UIViewControllerには以下のコードを埋め込み…

High SierraでCarthageをinstallする (RealmSwiftをinstallする)

はじめに Carthageは、CocoaPodsのようなSwift製のライブラリ管理ツールです。 CocoaPodsも現役バリバリでライブラリ管理として非常に優れているのですが、workspaceを勝手に弄ったり、プロジェクトファイルを汚してしまうデメリットがあります。 Carthageは…

iPhone XでUnityのAdMobの表示崩れが起きた時の対処法

はじめに iPhone XはAppleからDeveloperへの挑戦状だと巷で言われる余波が、UnityのAdMobでも来てました。 iPhone Xが出る前にAdMobを実装していたUnity性のアプリを起動したら見事に表示が崩れてたので、その対処法です。 どんな感じで崩れていたのか? キ…

LocalAuthentication iOSで生体認証(Face ID, Touch ID)のまとめ

はじめに KeyHolderにFace IDやTouch ID等の、生体認証を導入したので、その際の備忘録を纏めます。 はじめに 実装方法 info.plist修正 NSFaceIDUsageDescriptionを追加 LocalAuthenticationをimport 認証用コードの実装 エラーコード (LAError.Code) 最後に…

Google Homeに雨になりそうな時に教えてもらう方法 - 天気情報との連動

はじめに 先日記載した、GoogleHomeにしゃべらせるまでにやったことの発展で、 定期的に天気情報を取得して、1時間後の降水強度が高くなっていた場合(急な雨になりそうな場合)を知らせてくれる所まで実現でき嬉しさのあまり勢いで投稿ですヽ(=´▽`=)ノ 環境 Ra…

NodeJSを起動したままにする - foreverコマンド

はじめに NodeJS等を使う時に、ターミナルを落としてもプロセスを生存させる為に、デーモン化を良くします。 個人利用とかであれば、screenのデタッチでも良いかもしれませんが、デーモンの起動・稼働中のデーモンの状態をやりやすくするために、foreverコマ…

Unityで複数のGameObjectに一斉に通知する方法 Notification, EventBus

はじめに UnityでGameObjectAがGameObjectBに何かしらのイベントを渡す場合、何パターンか、方法があります。 ExecuteEvent (SendMessage) ラムダ式 (delegate通知) System.Action (delegateとほぼ同意) ただ、上記の場合、GameObjectAがGameObjectBの存在を…