iOS
iOSで指紋認証をした時、AppDelegateのどのメソッドが呼ばれるかを調査しました。 指紋認証の方法は下記事を元にしました。 www.cl9.info 検証 アプリを作ったら、AppDelegateを以下のように修正します。 これで、指紋認証時にどのメソッドが呼ばれるかを検…
iTunesConnectの売上情報をAPIで取得する部分の修正をしました。 以前はID/Passwordを使った取得方式だったのですが、Appleから「ID/Password方式は2017年8月から使えなくなるよ」というメールが来たのでAccessTokenで取得する方式に変更しました。 ID/Passw…
Chameleonというライブラリを試してみました。 github.com インストール CocoaPodsでインストールします。 pod "ChameleonFramework" 使い方 UIColorに多くのフラットカラーが追加されます。 import UIKit import ChameleonFramework class ViewController: …
ダイクストラ法という最短経路を求めるアルゴリズムをSwiftで試してみました。 参考にさせて頂いたのはこちらの記事です。 ダイクストラ法(最短経路問題) ダイクストラ法とは ダイクストラ法(だいくすとらほう、英: Dijkstra’s algorithm)はグラフ理論に…
囲碁AIで有名なモンテカルロ法で円周率を計算できるようなので試してみました。 モンテカルロ法とは、Wikipediaによるとシミュレーションや数値計算を乱数を用いて行う手法の総称とのことです。 モンテカルロ法 - Wikipedia 実装方法 計算の手順は下の通りで…
GKRuleSystemという複数の条件を管理する機能を使ってみました。 使い方は下の通りです。 GKRuleSystemにGKRuleを追加する GKRuleSystemにパラメータをセットする GKRuleSystemの評価メソッド(evaluate)を呼ぶ 評価の結果を取得する コードは下の通りです。 …
ベジェ曲線って良く聞くんですが、イマイチ理解できてなかったので自前で描いてみました。 具体的にはベジェ曲線の座標を自分で計算して描画をしてみました。 ベジェ曲線の座標の求め方 ベジェ曲線の座標は制御点を使って求められます。 今回は下のように制…
UIViewのdrawメソッド中では線・文字・矩形など様々なものを描画できます。 今回はそれらの描画を試してみました。 検証用コードは下の通りです。 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad(…
個人で出しているブラウザアプリの容量がかなりの大きさになっていたので調査しました。 キャッシュ等の削除方法は下の通りです。 これでアプリ容量が500MB → 60MBまで減りました。 WKWebsiteDataStore.default().removeData(ofTypes: WKWebsiteDataStore.al…
2017/10/17追記 *ネイティブ エクスプレス広告ですが、2018年3月に廃止予定とのアナウンスがありました。 はじめに AdMobでネイティブ エクスプレス広告というものを試してみました。 広告ユニットの作成 広告ユニット作成は、バナー広告同様にAdMobの管理画…
User Notifications frameworkではローカル通知に画像を添付できるようなので試してみました。 画像なしの通知を送る まずは下記事を参考に通常の画像なしのローカル通知を送ってみます。 www.cl9.info 実装は下の通りです。 import UIKit import UserNotifi…
2017/8/18追記 iOS11では、SFSafariViewControllerとSafariのcookieの共有ができなくなりました。 SFSafariViewControllerとSafariがcookieを共有しているかの調査 SFSafariViewControllerはiPhoneのSafariとのcookieを共有しているかどうか調査してみました…
GoogleMapsSDKを使ってアプリ上にストリートビューを表示してみました。 準備 最初にGoogleAPIManagerでAPIキーを作成します。 まずは下サイトでGoogle Maps SDK for iOSを有効化します。 console.developers.google.com 次は下ページでAPIキーを作成します…
Firebaseでイベントを送る方法を調べてみました。 GoogleAnalyticsの下処理に相当するものです。 let tracker = GAI.sharedInstance().defaultTracker tracker?.send(GAIDictionaryBuilder.createEvent(withCategory: "category", action: "action", label: …
UITableViewに下に引っ張るどリロードする実装を試してみました。 こちらはUIRefreshControlというクラスを使います。 UITableViewへのリロード処理の追加 実装は非常に簡単で、UIRefreshControlをUITableViewにaddSubviewするだけです。 class ViewControll…
iOS10から使えるようになったUser Notifications frameworkを試してみました。 通知の許可を得る まずはXcodeにUser Notifications frameworkを追加します。 許可を得る処理は以下の通りです。 引数で使いたいオプションを指定します。 UNUserNotificationCe…
GameplayKitの「Entities and Components」を試してみました。 Entities and Componentsとは Entities and Componentsとは、コンポーネント指向プログラミングをサポートするものです。 コンポーネント指向プログラミングとは、そのオブジェクトの性質を継承…
Storyboardの多言語対応を試してみました。 まずはプロジェクトに言語設定を追加します。 プロジェクト設定で言語を選択して下さい。 下のような画面になるので、多言語対応するStoryboardを選択します。 選択したStoryboardには、以下のように.stringsファ…
Kingfisherというライブラリを使ってみました。 こちらはSDWebImageにインスパイアされて作ったもので、画像のダウンロードが簡単にできるものになっています。 github.com インストール いつものようにCocoapodsを使います。 target 'MyApp' do use_framewo…
1つのプロジェクトで複数アプリをリリースしている場合のメタデータ管理方法です。 複数アプリが全く同じメタデータならいいのですが、アイコンやスクリーンショットを別々にする場合少し工夫をする必要があります。 fastlaneの設定方法はこちらをご参照下さ…
RMStoreというiPhoneのアプリ内課金を楽にしてくれるライブラリを使ってみました。 github.com インストール インストールはcocoapodsを使います。 pod 'RMStore' 使い方 商品情報は以下のように取得します。 引数にproductIdを渡せばSKProductの配列が返っ…
iTunesConnectの売上やダウンロード数などのデータを取得するプログラムに関する話です。 今まではiTunesConnectのSalesデータをAutoIngestion Toolというものを使って取得できました。 しかしこのツールは非推奨になり、2016年12月で停止してしました。 App…
アプリの申請や証明書周りを自動化するfastlaneを試してみました。 インストール インストールはgemを利用します。 gem install fastlane fastlaneの初期化 インストールが終わったらfastlaneの初期化を行います。 プロジェクトのフォルダで以下コマンドを実…
Chartsというライブラリを試して色々なグラフを使ってみました。 github.com インストール CocoaPodsでインストールしました。 target 'MyApp' do use_frameworks! pod "Charts" end 棒グラフ import UIKit import Charts class ViewController: UIViewContr…
iPhone5sから登場した指紋認証ですが、まだちゃんと使った事がなかったので試してみました。 指紋認証可能化どうかはLAContextクラスのcanEvaluatePolicyメソッドを使います。 LAContextを使うためにはLocalAuthenticationをimportする必要があります。 impo…
Smile-Lockというライブラリを試してみました。 URL見るとリクルートライフスタイルで出しているライブラリなんですね。 github.com インストール CocoaPodsでインストールしました。 target 'MyApp' do use_frameworks! pod 'SmileLock' end 使い方 下のよ…
Firebaseを使う準備 まずは下サイトで新しいプロジェクトを作成します。 Firebase Console プロジェクトを作成すると以下のような画面になるのでiOS アプリに Firebase を追加を選びます。 情報を入力してアプリを追加します。 次画面に移動するとGoogleServ…
R.swiftがいつの間にかNSLocalizedStringにも対応されていたので動かしてみました。 R.swiftとは R.swiftとはStoryboardや画像などの取得を便利にするライブラリです。 Storyboardの取得はUIStoryboard(name: "Main", bundle: nil)のように文字列で指定しま…
WKWebViewのスクロール速度を変更する方法を調べてみました。 まずはViewControllerにwebViewを貼り付けます。 import UIKit import WebKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() let webView = WKW…
StoreKitのSKStoreProductViewControllerを使ってアプリ内でアプリのページに移動してみました。 まずはStoreKitを追加します。 SKStoreProductViewControllerはUIViewController同様にpresentをして表示します。 Storeの情報はloadProductメソッドで読み込…