ゆう@あんのうん

Type "xxx" does not confirm to protocol 'NSObjectProtocol'エラーの対処法

はじめに タイトル通りのエラーが出た時の対処法です。 例えば、Objective-Cのライブラリで、以下のようなプロトコルがあり、 @protocol Hogehoge <NSObject> これを宣言しようとした際、 class Fuga: Hogehoge 以下のようなエラーが出ます. Type "Fuga" does not conf</nsobject>…

FirebaseUIの認証を使ってドハマリした件 - Cannot read property 'length' of undefined Dismiss

はじめに Project.Unknown内で利用するツールをFirebaseで行おうと考え、PJ内だけで利用したいため、折角なのでFirebase Authenticationを利用して認証されたメンバーだけ閲覧できるページを作ろうと、以下のモジュールをFirebaseUIで実装しました。 この時…

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

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

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

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

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

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

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

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

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

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

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

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

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

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…

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には以下のコードを埋め込み…

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) 最後に…

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

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

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

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

Unity 1 Week Game Jam お題「space」

今回も参加しました 今回も参加させてもらいましたヽ(=´▽`=)ノ んで、今回もレポート書いてきます。 今回も参加しました つくったゲーム 「ちいさなぎんが」 レポート 1日目 2日目 - 3日目 4日目 5 - 6日目 6日目に徹夜しての7日目突入 利用アセット 拡張しや…

Raspberry Pi3 の初回セットアップまでにやったこと

はじめに 昨今IoTが騒がれていて、個人でもお手軽にIoTをいじれると言う意味で、ずっと触ってみたいと思っていながらRaspberry piですが、ひょんなことから手に入れる事が出来ました。 今日は、そんなRaspberry piを初回セットアップするまでにやったことを…

UniRxとコルーチンを組み合わせる

はじめに C#の考え方として、Delegateよりはラムダ式が好まれるようになっているようです。(C#に取り組みだして日が浅いので違ってたらすいません) ただ、ラムダ式でメソッドを呼び出して、コルーチンの結果を受けてコールバックさせると言う所で詰まってし…

UnityのSpriteを引き伸ばす際に綺麗に引き伸ばす方法 SpriteEditor

概要 Unityで例えば、ダイアログを作る際など、文字の長さに応じて背景に設定しているuGUIのImage(Sprite)を引き伸ばすケースは良くあるかと思います。 単純な塗りつぶしされたSpriteであれば特に問題は無いのですが、装飾を入れたSpriteの場合、引き伸ばし…

Unity C# でメソッド名やクラス名を簡単にログ出力する方法

概要 Unityでは、swift等の他の言語にあるような「FILE」や「LINE」に相当するものはプリプロセッサが無いため、利用できません。 その為、例えば、メソッドがどのタイミングでコールされたかを埋め込むには以下のように記載しなければなりません。 Debug.Lo…

Google AdSenseで広告を表示するまでに躓いた事

はじめに この度、めでたくGoogle AdSenseが利用出来るようになりました(∩´∀`)∩ 実は、このブログにGoogle AdSenseを導入するのは、2年越しの悲願でした。 (とは言っても、殆どの期間は動いて居なかったというのもありますが 今回の記事では、Google AdSens…

Unity Cloud Buildでエラーになった際の解決法 vol3

はじめに 今回の記事で三回目になりますが、Unity Cloud Buildで盛大に詰まった(1週間程このせいで開発が止まった)際の解決方法を記します。 本記事は、UnityにFirebaseとTwitter Kit for Unity, Admobを導入した際に出くわした内容ですので、記事で出て来る…