プログラム

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

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

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

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を作るにあたり、その制作過程について記載していこうと思います。 今回の記事では、 どんなUX思想で作…

RealmSwift vs CoreData

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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日目突入 利用アセット 拡張しや…

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

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

swiftでtableViewを表示する…ときのエラー・トラブル対応方法

はじめに どうも、どうまずです。 Swiftを初めて、最初のほうにやること、『SwiftでTableViewを表示する。』 いくつかのサイトや参考書があり、私もそれらを見ながら作成しました。 しかし、エラーやトラブルで躓いていませんか? 躓きすぎて、匙投げようと…

Unityでパラメータ調整等のレベルデザインをiPhoneやAndroidの端末上で簡単に行う方法

概要 ゲームを作っている時に、キャラクターのステータスや移動スピード等の各種パラメータの細かい調整を何度も行うことになると思います。 ステータス等に関してはUnityのエディター上での確認で十分ですが、 アクションゲーム等の場合、やはり実際にiPhon…

iOS11でのクリップボードに文字列を渡す方法 - UIPasteboard

概要 これまでだと、以下の様にする事でクリップボードに文字列を渡すことが出来ました。 let pasteboard: UIPasteboard = UIPasteboard.general pasteboard.setValue("渡したい文字列", forPasteboardType: "public.text") ただ、このやり方はiOS11からは出…

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

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

FabricのCrashlyticsのアップデートに失敗した時の回避法

Fabricとは みなさん使ってます?Fabric. Twitter社が、Crashlyticsを吸収しTwitterライブラリの導入支援に加え、クラッシュレポートをグラフィカルに確認できるようにしてくれるツールです。 (Fabricツールのイメージ) 最近では、GoogleのFirebaseのクラッ…

Firebaseのルールを設定する - UnityでFirebaseを使ったオンラインランキングシステムを作るvol4

この記事はシリーズ物です。 シリーズの記事は以下を参照ください。 www.project-unknown.jp www.project-unknown.jp www.project-unknown.jp はじめに この記事はFirebase RealtimeDatabaseのルールについて記載します。 ルールについては、Unity以外でも(i…

本当に書いた怖いソース(swift編) 強制ダウンキャスト as!

はじめに どうもどうまずです。 本当に書いちゃった怖いソースをお見せしようと思います。 特に今回はクラッシュするレベルのコードです。 強制ダウンキャスト まずはこちらのソースをご覧頂きたい。 (ちなみに、コンパイルエラーにはなりません。) func c…

本当に書いた、怖いソース (swift編) viewDidLoadの肥大化 Initialization Closure

はじめに どうも、どうまずです。 本当に書いた、汚いソース第2弾です。 今回はどんな怖いソースが出てくるのか・・・・ viewDidLoad まずはこちらのソースをご覧頂きたい。 override func viewDidLoad() { super.viewDidLoad() mainCollectionView.delegat…

UnityでFirebaseのRealtimeDatabaseとデータのやり取りをする - UnityでFirebaseを使ったオンラインランキングシステムを作るvol3

この記事はシリーズ物です。 シリーズの記事は以下を参照ください。 特に本稿は、以下の2つの記事を読み終えている事前提で記載していますのでご注意ください。 www.project-unknown.jp www.project-unknown.jp www.project-unknown.jp https://assetstore.u…

本当に書いた、怖いソース(swift編) マジックナンバー

はじめに どうも、どうまずです。 私が本当に書いて指摘してもらった、汚い・危ないswiftのソースを心霊写真の紹介っぽく記載していきます! 反省も踏まえまして… 恐怖・マジックナンバー まずは、こちらのソースをご覧下さい・・・。 switch indexPath.sect…

UnityでFirebaseにTwitterアカウントでログインする機能 - UnityでFirebaseを使ったオンラインランキングシステムを作るvol2

この記事はシリーズ物です。 シリーズの記事は以下を参照ください www.project-unknown.jp www.project-unknown.jp www.project-unknown.jp やりたい事を簡潔に纏めるskill皆無な為、長いタイトルになってしまった…。 最初に懺悔いたしますと、かなり試行錯…

Twitter Kit for UnityでTwitter認証を行う - UnityでFirebaseを使ったオンラインランキングシステムを作るvol1

はじめに この記事はシリーズ物です。 シリーズの記事は以下を参照ください www.project-unknown.jp www.project-unknown.jp www.project-unknown.jp 今日はTwitter Kit for UnityでTwitter認証の記事を書きます。 アセットはこれ 最初の背景はどちらかと言…

Arbor2とUniRxで指定回数Click/Tapされたら次のStateへ遷移する機能を作る

はじめに 最近、少しずつLinqを覚え始め(C#はまだ毛が生えた程度のSkillなので)、ずっとやりたかったUniRxを使ってみました。 また、折角なので最近一番のお気に入りのAssetのArbor2と組み合わせて何か便利な挙動が作れないかしらと思い、タイトルの通りの機…