iOS / Swift
まだまだお付き合いしないと行けないCocoaPods Carthageが台頭して来て、利用するSDKがCarthage対応していたら大抵Carthage版をinstallするのですが、まだまだCocoaPodsで管理されているSDKが多い為、iOSエンジニアだとCocoaPodsを使うことを避けては通れま…
XCodeで Class ○○ is implemented in both ○○ and One of the two will be used. Which one is undefined.が出るときの対処法を記載しています。
TIME HACKERの次期開発で、メニューが煩雑になってきたため、グループ化を行おうとした際に掲題の通り、Sectionで余計な余白が生まれてしまって、軽く詰まったので備忘録です。
Embedded Framework Embedded Frameworkは平たく言うと、アプリのコードを分割してFrameworkとして利用する事ができる機能です。 XCode8からの機能なので話題としては古いのですが、丁度アプリのリファクタリングを行っている際に、Embedded Frameworkを用い…
はじめに タイトル通りのエラーが出た時の対処法です。 例えば、Objective-Cのライブラリで、以下のようなプロトコルがあり、 @protocol Hogehoge <NSObject> これを宣言しようとした際、 class Fuga: Hogehoge 以下のようなエラーが出ます. Type "Fuga" does not conf</nsobject>…
Apple Watch対応アプリを申請しようとしたらエラーになった TIME HACKERのApple Watch対応したものを申請しようとした際に、Upload後メールで以下のエラーを受け取りました。 Dear Developer, We identified one or more issues with a recent delivery for …
iOSアプリをリリースする等の場合は、Apple Developer Programの登録(有料)が必要です。 また、このProgramは年に1度更新が必要となるのに加え、1年に1度の作業のため、毎回思い出しながら手探りで更新作業を行っていたので、備忘録として更新手続きを残して…
はじめに インジケータを自作する方法です。 標準で搭載されているものでも十分事足りるのですが、アプリの色を出したいときにインジケータの演出もこだわりたいですよね。 提供中のTIME HACKERにも自作のインジケータを導入した方ので、以下のキャプチャの…
XCode10がリリースされ、早速手元にあるXCode9でビルドしたアプリもXCode10用にビルドしようとした際に以下のエラーが発生しました。 error: Multiple commands produce '/Users/{アカウント名}/Library/Developer/Xcode/DerivedData/{アプリ名}-hievebmhhbb…
Apple Watch (Watch OS4) この記事では、Apple Watch (以降Watch OS)の開発にあたっての私なりの開発メモを記します。 また、何の断りがなければ、Watch OSはWatch OS4の事を指しています。 環境としては、 XCode 9.4.x Watch OS 4 (Watch Kit2) での開発で…
はじめに Watch OS 2からは、Apple WatchがiPhoneアプリから独立して動くことになったので、これまでとは違った書き方が必要です。 この対応を行っている最中に、以下の様なエラーが出て詰まってしまったので、その備忘録を示します。 エラーの内容 WCErrorC…
はじめに iOSのFirebaseでは、以下を二重に呼ぶ事は禁止されています(クラッシュします) FirebaseApp.configure() この時のクラッシュの内容は以下のようになります。 Terminating app due to uncaught exception 'com.firebase.core', reason: 'Default app…
TIME HACKERリリースしました! TIME HACKERをめでたくリリースすることができました。 まだの人は是非この機会にお試しください! 今回は、TIME HACKERを作るにあたり、その制作過程について記載していこうと思います。 今回の記事では、 どんなUX思想で作…
はじめに iOSのローカルデータベースとして、これまでは、CoreDataが主流でした。 CoreDataの他だと直接SQLiteを弄ったり、ラッパーとなるFMDBなどのOSSがありましたが、Appleが提供している機能として、やはりCoreDataのシェア率は高かったと思います。 実…
Firebase A/Bテスト Firebaseが提供しているA/Bテストを利用した記事となります。 この記事では、A/Bテストとは?から、 実際にTIME HACKERアプリで、インタースティシャルの表示頻度を確認する際に、A/Bテストを導入しているので、実際に実装した際の手順・…
GDPR(General Data Protection Regulation)とは 詳しいことは他サイト様に委ねますが、ざっくりというとEUでのデータ保護法則の新しい個人情報保護法が策定され、EU諸国では勝手に個人情報を取得、解析する事ができなくなりました。 ここ最近(2018年)、AdMob…
はじめに iTunes Connectを開いたら、 こんな画面になっており、Agreements, Tax, and Banking のリンクを開いた際に、以下のように、あまり見慣れないエラーが出て焦りました。 Our records indicate that your banking information is incomplete: Missing…
はじめに UIViewは、初期設定だと画面からViewがはみ出してもそのまま表示されてしまいます。 例えば以下のように高さ230pxのUITableViewCellがあるとして、 UITableViewで表示する際に、最初隠したい為に、44pxとした場合、以下のように崩れてしまいます。 …
はじめに アプリによっては、ナビゲーションの部分にボタンを複数設置しているものもあります。 提供中のKeyHolder もトップ画面のナビゲーションに複数配置してます。 この記事では、このやり方について紹介します。 はじめに Storyboard上、Xib上で配置 コ…
はじめに iOSのユニットテストを行うのに、標準ですとXCTestがありますが、 最近Quickと呼ばれるテストフレームワークがよく使われ出しました。 XCTestも非常に強力なテストフレームワークですが、初見であったり、他の人が記載したテストコードは中々読みづ…
はじめに 構造体とは値型のデータを構造的に持つものです。 特にSwiftの構造体は、その中でメソッドを作成出来たりと、クラスと何が違うねん!と思いますが、 構造体はクラスと違って代入や関数呼び出しの際、データの実態がコピーされ、新しいインスタンス…
はじめに 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のグラフ描画OSSのChartsを利用してグラフ描画について紹介します。 今回は、後述の通り円グラフを表示させてみます。 はじめに Chartsとは 導入方法 実装方法 各種設定 円グラフを真ん中まで塗りつぶしたい グラフの中央にテキストを表示したい…
はじめに 提供中のKeyHolderにて、UITextFieldで入力チェックを行っております。 こんな感じでUITextFieldに何も入力されていない場合は、画面右上の保存を非表示にし、 こんな感じでUITextFieldに入力されている場合は、画面右上の保存を表示しています。 …
はじめに TabBarを非表示にしたい場合、UITabBarController側で非表示にするのではなくて、Tabで表示するUIViewController上の処理で非表示処理を入れるやりかたです。 表示のタイミングでTabBarを非表示にする UIViewControllerには以下のコードを埋め込み…
はじめに Carthageは、CocoaPodsのようなSwift製のライブラリ管理ツールです。 CocoaPodsも現役バリバリでライブラリ管理として非常に優れているのですが、workspaceを勝手に弄ったり、プロジェクトファイルを汚してしまうデメリットがあります。 Carthageは…
はじめに KeyHolderにFace IDやTouch ID等の、生体認証を導入したので、その際の備忘録を纏めます。 はじめに 実装方法 info.plist修正 NSFaceIDUsageDescriptionを追加 LocalAuthenticationをimport 認証用コードの実装 エラーコード (LAError.Code) 最後に…
はじめに MacOSがHighSierraになった際に、cocoapodsを実行した際に、 /usr/local/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory のエラーが出て実行できなかった時に実施した事で…
はじめに どうも、どうまずです。 Swiftを初めて、最初のほうにやること、『SwiftでTableViewを表示する。』 いくつかのサイトや参考書があり、私もそれらを見ながら作成しました。 しかし、エラーやトラブルで躓いていませんか? 躓きすぎて、匙投げようと…
概要 これまでだと、以下の様にする事でクリップボードに文字列を渡すことが出来ました。 let pasteboard: UIPasteboard = UIPasteboard.general pasteboard.setValue("渡したい文字列", forPasteboardType: "public.text") ただ、このやり方はiOS11からは出…