iOS

Firebase A/Bテストを試す

Firebase A/Bテスト Firebaseが提供しているA/Bテストを利用した記事となります。 この記事では、A/Bテストとは?から、 実際にTIME HACKERアプリで、インタースティシャルの表示頻度を確認する際に、A/Bテストを導入しているので、実際に実装した際の手順・…

デザイン視点でTIME HACKER

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Firebase(AdMob/Analytics)へ移行した際のメモ

はじめに またまたKeyHolderの作業中メモです。 お題の通り、Firebaseに諸々集約させようとしており、その際の作業ログです。 前提 KeyHolderでは、以下を利用しております。 広告 Google Mobile Ads SDKs for AdMob | Google Developers ユーザ解析(ボタン…

SwiftでKVO (Swift3.0)

はじめに 今日のお題はSwift(3.0)でKVO。 KeyHolderのSwift化を行っていた際に思いっきり詰まってしまったので、その備忘録です。 そもそもKVOって? KVOは、Key-Value ObservingでObjective-Cから引き継いだ機能の1つで、 指定した変数に変化があった際に、…

iOS(Swfit)でStatusBarを変更 (preferredStatusBarStyleの代わりになるもの)

今日は超絶簡単な記事をpost. Status barのstyle変更 iOS7からStatusBarのスタイルを変更する際に、以下の様にをoverrideして使えるようになりました。 /// statusの文字を白くする - (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleL…

CocoaPodsのpod installがうまく動かなくなった時に試した事。

はじめに ゆう@あんのうんです。 開発中のアプリが古いCocoaPodsを使っていたため、ずっとversion upしていなかったのですが、 バージョンを上げる必要性が出てきたので、久しぶりにpod installを打ったら以下のようなエラーが出るようになりました。 $ pod …

一部のViewControllerだけ端末の回転をさせる方法

ゆう@あんのうんです。 今日のお題は、一部のViewControllerだけ端末の回転をさせる方法です。 注意点 UINavigationControllerにぶら下がっているViewControllerはshouldAutorotate()は呼ばれません。 UINavigationControllerにViewControllerがぶら下がっ…

iTunes Connectの苗字を変更する

はじめに 超久々の更新。ゆう@あんのうんです。 結婚するにあたり、iTunesConnectの苗字を変更する必要性が出てきて、その際に何をしたのかのメモ。 contact usから連絡 身も蓋もないですが、どう対応して良いのかわからなかったので、contact usから連絡し…

KeyHolder - お問い合わせのページ

KeyHolder お問い合わせのページ 現在公開中のKeyHolderへ、頂いているご意見の返答ページです。 頂いたご意見・ご感想は、全てスタッフ一同目を通しておりますので、 このblog記事へのコメントもしくは、AppStoreへのレビューにて書き込んで頂ければと思い…

UITableViewのcanMoveRowAtIndexPathがコールされない。

はじめに 久々にUITableViewのセル移動を実装しようと思ったらどつぼにはまった、ゆう@あんのうんです。 事象 結果から言って、canMoveRowAtIndexPathがコールされない理由は以下の通り (BOOL)tableView:(UITableView )tableView canEditRowAtIndexPath:(NS…