いつも設定するAppearanceのメモ

環境: Swift2.2 iOS8以降対象 いつも設定している Appearance のコピペ用メモ。 以下を AppDelegate で呼ぶ。 mainColor は extension で独自に設定したもの。 private func setupAppearance() { // アプリケーション全体のtintColor設定 self.window?.tintC…

SwiftでTupleとCaseを組み合わせて使う

環境: Swift2.2 タプルとcaseを組み合わせて使うと便利だったのでメモ。 Switch(case)文で使う オプショナル型な複数の値の組み合わせで場合分けしたい場合に使う。 また値はアンラップして取り出して変数にバインドする。 ポイントはcase部分で「?」をつけ…

MySQLに街区レベル位置参照情報のCSVデータをインポートする

環境 Mac MySQL Server version: 5.7.13 位置参照情報ダウンロードサービス http://nlftp.mlit.go.jp/isj/ 今回はこちらから東京都の大字・町丁目レベルのデータをダウンロードする。 13000-09.0b.zipというファイルがダウンロードされる。 これを解凍すると…

LaunchScreen.storyboard に貼り付けた画像が表示されない

シミュレータでは表示されるが、実機だと表示されない。 バグらしい、とりあえず自分の場合は iPhone 側の再起動で表示されるようになった。 Launch Storyboard not showing image when projec... | Apple Developer Forums https://forums.developer.apple.…

SwiftでDEBUG Macroを使う

環境: swift2.2 Xcode7.3.1 Swiftで以下のようなDEBUG Macroを使いたい。 #if DEBUG print("DEBUG") #elseif STAGING print("STAGING") #else print("ELSE") #endif Objective-C の場合はPreprocessor Macrosに設定していたが Swift ではOther Swift Flagsの…

SwiftでオブジェクトをNSUserDefaultsに保存する

環境:swift2.1 NSUserDefaultsにオブジェクトのまま保存したかったが、保存できるオブジェクトはNSArray, NSDictionary, NSString, NSNumber, NSDate ,NSDataに限られていた。 調べたところ、オブジェクトをNSDataに変換できることがわかった。 NSDataにで…

UIImage と UILabel を合成する

ios

環境:Swift2.1 UIImage と UILabel を合成する方法について。 UIImage をセットした UIImageView を作成、そしてそれに UILabel を addSubview する。 UIImageView(UIView) が持つ CALayer プロパティのrenderInContextメソッドでグラフィックコンテキスト…

単色で塗りつぶした UIImage を生成する

ios

環境: Swift2.1 指定した UIColor の単色で塗りつぶした UIImage を生成したい。 UIImage の extension として実装した。 import UIKit extension UIImage { static func image(color color: UIColor, size: CGSize) -> UIImage { UIGraphicsBeginImageConte…

UIView が持つ描画・レイアウト更新系のメソッドメモ

ios

setNeedsLayout() 現在の子Viewの配置を無効にし、次の更新サイクルで配置し直すようにする(メインスレッドから呼ぶこと)。 このメソッドは即時の更新を強制するものではなく、次の更新サイクルを待つので、更新要求を書き留めたらすぐに処理を戻す。 これを…

UIImage と NSData の相互変換

ios

環境: Swift2.0 UIImage -> NSData UIImagePNGRepresentation関数、またはUIImageJPEGRepresentation関数を使う。 関数定義 // return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format public func UIImagePNGRepresenta…

同じiOSバージョンのシミュレータが重複して表示されてしまう場合の解決方法

ios

環境: Xcode7.0.1 Beta 版と GM をインストールしたら重複して表示されるようになってしまった。 iOSシミュレータを削除するには Xcode > Window > Devicesから削除できる。 削除したいデバイスがたくさんあって個別に面倒な場合は ~/Library/Developer/Core…

iOS シミュレータ・アプリのディレクトリの場所

ios

環境: Xcode7.1 アプリデータのディレクトリを調べる 例えば iOSシミュレータにインストールした、あるアプリのDocumentsディレクトリは以下のようになる。 ~/Library/Developer/CoreSimulator/Devices/CC8FA744-B3C2-4689-839F-33B504F6168A/data/Container…

iOS でファイル保存、読み込み

ios

環境: Swift2.0 アプリ内にデータを保存する場合、どこに保存するのかを調べた。 だいたい以下のディレクトリ(またはこれらの中に作成したサブディレクトリ)のどれかに保存することになるようだ。 Documents/ Library/ Library/Application Support/ Library…

Carthage を使ってライブラリを管理する

ios

環境: Xcode 7.0.1 Swift2.0 Carthage(カーセージって読むみたい)というライブラリ管理ツールを使ってみた。 CocoaPods と比べると ・CocoaPods では Static Library のlibPods.aを静的リンクしていたが 、Carthage はxcodebuildコマンドを使ってビルドし…

Git を理解するための濃い記事まとめ

git

後でまた見返したい Git を理解するための濃い記事まとめ。 コンセプトから理解するGitコマンド from ktateish www.slideshare.net koseki.hatenablog.com koseki.hatenablog.com d.hatena.ne.jp ja.astahblog.com 見えないチカラ: 【翻訳】Gitをボトムアッ…

iOS9対応メモ

環境: Xcode7 GM iOS9 対応で行った作業メモ。 App Transport Security(ATS)対応 HTTPS 接続にする必要あり。今回はとりあえずHTTPを許可するようにInfo.plistに以下の手順で追加する。 NSAppTransportSecurityを Dictionary で追加。 その下でNSAllowsArbit…

よく使う Xcode のショートカットメモ

developer.apple.com Cmd + Ctrl + 左 or 右 超使う。ソースコード上の定義にジャンプしたり、戻ったり。 トラックパッドの左右スワイプでも同様なことができるがデカいファイル上で行うと固まったりするので、上のコマンドでやるほうがよい。 Cmd + b ビル…

Xcode の Localization でハマったのでメモ

環境: Xcode 6.1 iOS 8.1 Simulator 結論から言うと Xcode 6.1 と iOS 8.1 Simulator の環境で、 iOS Simulator の言語設定に対応したローカライズファイルLocalizable.stringsを用意しても反映されないバグがあるらしい。 ワークアラウンドとして iOS Simu…

VPC 内に Elastic Beanstalk + RDS の環境構築して Rails アプリをデプロイする

環境: Mac aws-cli 1.7.0 eb-cli 3.0.10 Ruby 2.1.5 Rails 4.2.0 今回のポイント VPC の環境構築(Subnet, IGW, Route Table) VPC 内に Elastic Beanstalk 環境構築 Elastic Beanstalk のプラットフォームは Rubyを選択、Rails アプリをデプロイする。 Rails…

RDS(MySQL)の文字コードとタイムゾーンの設定

環境: Mac aws-cli 1.7.0 jq 1.4 RDS MySQL(5.6.22) RDS MySQL の文字コードとタイムゾーンの設定を行ったのでその手順メモ。 操作はすべて aws-cli のコマンドラインで行う。 1. 文字コードの設定 RDS MySQL の文字コードおよび照合順序はデフォルトの状態…

EB CLI 3.x を使って Elastic Beanstalk に Rails アプリをデプロイする

環境: Mac eb-cli 3.0.10 ruby 2.1.5 rails 4.2.0 今回は、Elastic Beanstalk 用のコマンドラインツールである EB CLI を使って Rails アプリをデプロイしてみる。 最近出た EB CLI 3系はコマンドが2系から大幅に変更されている。 現時点(2015/2/12)では3系…

Rails でリクエストの HTTP ヘッダを取得してログに出力する

環境:rails 4.2.0 Rails でリクエストの HTTP ヘッダはrequest.headersから取得できる。 すべてログに出力するなら # すべてログに出力する request.headers.sort.map { |k, v| logger.info "#{k}:#{v}" } 個別に取得するなら # ユーザーエージェントを取得…

ClearDB に文字コード utf8mb4 で保存する

環境: ruby: 2.2.0 Rails: 4.1.8 ClearDB(MySQL): 5.5.40 Heroku の MySQL アドオン「ClearDB」で文字コードutf8mb4で保存する方法についてメモ。 Rails + MySQL でutf8mb4を扱う方法は以前書いた。 Rails4 で MySQL の utf8mb4 を扱う - xykのブログ Clear…

cat, less コマンドの表示を Syntax Highlight させる

環境: Mac Pygments という Python のパッケージがあり、その中の pygmentize コマンドラインツールを使うことでシンタックスハイライト表示できるようになる。 Pygments インストール まずは Pygments のインストール。 $ pip install Pygments または $ su…

Nginx + Unicorn + Sinatra 構成の設定メモ

以前 Nginx + Unicorn + Sinatra 構成のアプリを作成したが、その時に行った設定をメモしておく。 サーバのディレクトリ構成 $ tree /usr/local/app /usr/local/app ├── config.ru ├── log │ ├── unicorn.stderr.log │ ├── unicorn.stdout.log │ └── crawler…

XtraFinder の設定メモ

mac

Mac に Finder はイマイチ使いづらい。 ファイルを Enter で開けないところとか。 ダブルクリック、Cmd + O、 Cmd + ↓ などで開く。 他にもいろいろと不便を感じることが多かったので、 なるべくデフォルトのままで行きたかったけど XtraFinder を導入してみ…

NSUserDefaults を使ってアプリの初回起動判定を行う

環境:iOS Deployment Target 7.1 アプリの初回起動判定は NSUserDefaults でやるのがよいらしい。 以下のように NSUserDefaults を使って初回判定を行うメソッドを作った。 - (BOOL)isFirstRun { NSUserDefaults *userDefaults = [NSUserDefaults standardU…

Rails4 でカウンター用カラムをインクリメントする

環境: rails (4.1.6) activerecord (4.1.6) mysql2 (0.3.16) Rails4 というか Rails でカウンター用カラムをインクリメントする簡単な方法がないか調べてみた。 やりたいこと MySQL だったら以下のような SQL を発行したい。 update books set reviews_coun…

UITextField の inputView に UIPickerView を設定する

環境:iOS Deployment Target 7.1 以前、UIPickerView をキーボードのように表示・非表示させるというエントリーを書いたがもっと簡単なやり方を知ったのでメモしておく。 まず、以前のやり方は完了ボタンとそれを置くビューを自分で作って、UIPickerView と…

画面の向きを固定して回転を禁止する

環境:Xcode6 画面の向きを固定して回転しないようにする。 Xcode の プロジェクト -> Targets -> General > Deployment info > Device Orientation で設定する。 Device Orientation 説明 Portrait 縦画面、ホームボタン下 Upside Down 縦画面、ホームボタ…