思い立ったが吉日!

iOSが好きです。

Apple Watch のセルラーモデルで夢広がるかと思って調べてたら問題点が結構あった

やりたい感じ Apple WatchとiPadでヘルスケアデータの管理 https://www.ei-publishing.co.jp/articles/detail/flick-469143/ セルラーモデルの単体動作 いずれも、事前にiPhoneとのペアリングが完了していることが条件 Apple Watchだけで使うことができる通…

Podfileの書き方変わったし、Podfileをきれいにまとめて書く。

Podfileの書き方変わったし、Podfileをきれいにまとめて書く。 cocoapodsのversion 1.0にupdateしたついでにPodfileを書き換える。 Podfileの書き方が変わるので、Podfileを作り直す。 ( pod 'PromiseKit', '3.0.1'....のあたりは別でコピーとっておくんやで…

[mac]iTerm2をupdateしたらgo2shellが現在ディレクトリに移動してくれなくなったのでapplescriptに乗り換えた

iTerm2をupdateしたらgo2shellが現在ディレクトリに移動してくれなくなったのでapplescriptに乗り換えた 今まではgo2shellというアプリをインストールしてFinderのツールバーに常駐させて使っていたのですが、iTermをアップデートしたタイミングで、go2shell…

node.jsでserver を立てる時のメモ

node.jsでserver を立てる時のメモ // get module var http = require('http'); // create server var server = http.createServer(); // binding event server.on('request', function(req, res){ // req status code = 200 // これからわたすコンテンツの…

deferの使いドコロ

deferの使いドコロ swift2.0から追加された、deferってあまり使ってなかったんですがjavaとかのtry catch finallyのfinally的なやつだと思えば結構使えるやつなんですね。 // インジケータをグルグルさせる indicator?.startAnimating() // 二重タップ防止の…

共通系CustomTableViewCell

## 共通系CustomTableViewCell tableViewでCellに値をセットするとき、 cell.typeLabel.text = model.title cell.moneyLabel.text = model.money if let money = model.money where money > 0 { cell.moneyLabel.textColor = UIColor.BlueColor() } else { c…

UILabelに行間をつける

上下余白のLabelと行間をつけるLabel iOSアプリでヒラギノ角ゴを使っているとUILael に上下余白を付けないとjやgの下が切れちゃいますね。 (ちなみにベトナム語とかに対応する場合は、上にも長いので上下に余白つけると良いですね) なのでよく上下paddingの…

ViewControllerにclosureの変数を持って、閉じる動作を呼出し側から設定する

ViewControllerにclosureの変数を持って、閉じる動作を呼出し側から設定する 複数画面から呼び出される共通画面を作ってる時に、 navigation内にいてpush遷移するパターンと、 navigation外からmodalとして遷移するパターン と言った遷移が違うけど同じ画面…

Arrayのsort

Arrayのsortメソッドについて クロージャを使って書くと let array = [1,3,5,7,0,6,3,3] let newArray = array.sort { (left, right) -> Bool in return left > right } print("\(newArray)") それぞれ比較して>がTrueになるようにソートするので、降順にソ…

Swiftでのfor文

Swiftでのfor文 swift2.2から for var i = 0; i < 10 i++ { } 的な書き方がdepricateになってますね。 慣れ親しんだこの書き方ともオサラバなのは寂しいですが せっかくの機会なので代替の書き方をまとめておこうと思います。 let array: Array = ["a","b","…

Swift3.0でincrement / decrementがdepricateになってる

swift 3.0にてincrement/decrementの書き方が非推奨になるそうで。 for var row = NumRows - 1; row > 0; row-- { print("row is \(row)") } for var row = NumRows - 1; row > 0; row =- 1 { print("row is \(row)") } いちいちこう書かなきゃいけないみた…

simulatorが遅くなってハマったとき

xcodeでsimulatorを使ってデバッグしている時に、アニメーションが遅くなってしまい、メモリを疑っしまったけど、simulatorの設定の問題だったので備忘録。 ココの Slow Animationsの設定でsimulatorのアニメーションがゆっくりになるみたいです。 多分comma…

MySQLの練習

MySQLの練習 MySQLはhomebrewで入れてます。 Mac へ MySQL を Homebrew でインストールする手順 - Qiita インストールしたら、とりあえず起動 mysql.server start 停止 mysql.server stop 練習なのでルート権限で入る mysql -uroot 出る exit DBの作成 (good…

Swiftの参照渡しでinoutを使う

Swiftの参照渡しでinoutを使う Swift書いていたらinoutなるものが出てきて、なんだろうと調べたら参照渡しのようですね。 参照渡し obj-c -(void)say : (NSString **)str { *str = @"hey!"; } NSString *saying = @"hello"; NSLog(@"%@",saying); // hello […

curl コマンドでAPIからの返り値の確認

curl コマンドでAPIからの返り値の確認 WEB APIからの返り値などの確認には、curlコマンドが便利です。 実装前に、どんな感じで値が返るのか確認したり、パラメータ変えたらどんな感じで返ってくるのか?という状況で使えるコマンドです。 curl URL名 termin…

Ricty Fontの設定

プログラミングフォントで有名なRictyをMacにインストースした際に若干はまったので、備忘録として残します。 最初挑戦したのがgithubの公式のインストール方法でインストールして面倒だったのですが、 github.com homebrewを使えば簡単にインストールできま…

URLSchemeを使った連携の確認にはメモ帳が便利

URLSchemeを使った連携の確認にはメモ帳が便利 URLScheme連携するアプリで、確認する際に実際にアプリで連携するのが一番良いのですが、呼び出し元のアプリがまだ出来てないといった場合はよくあると思います。 safariなどのブラウザにURLSchemeのURLを入力…

デバッグ用の隠しコマンドを作る

デバッグ用の隠しコマンドを作る デバッグで開発者以外に内部的な値の変更を確認してもらう時に、ちょっと困りますよね。 閾値変更したんだけど、大量に実行しないと差がわかりづらいとか。 ログを見て確認してもらうわけにはいかないので、内部的にはちゃん…

Singleton

Singletonの実装 内部変数を用いた方法で実装 static TCPState* sharedInstace = nil; + (TCPState *)sharedInstance{ if (!sharedInstace) { sharedInstace = [TCPState new]; } return sharedInstace; } ただし、シングルトンのインスタンスがnilかどうか(…

Storyboardを使ったUITableView

Storyboardを使ったUITableView なるべくコードを書かずにStoryboardでTableViewが表現されてるソースを見た時、少しハマったのでメモ。 セルがカスタマイズされたテーブルの表示の作成の流れを確認。 まずは、通常通りSingleViewApplicationの作成。 UITabl…

GCDを使って並列非同期通信

GCDの並列非同期通信 GCDの並列非同期処理を行います。 非同期通信 NSURL *url = [NSURL URLWithString:@"http://www.apple.com"]; // UI変更用にmainThreadを準備 dispatch_queue_t main = dispatch_get_main_queue(); // 並列のディスパッチキューを準備 d…

GCDの用語整理

GCDの用語整理 GCDのディスパッチキューには 直列 DISPATCH_QUEUE_SERIAL 並列 DISPATCH_QUEUE_PRIORITY_HIGH DISPATCH_QUEUE_PRIORITY_DEFAULT DISPATCH_QUEUE_PRIORITY_LOW DISPATCH_QUEUE_PRIORITY_BACKGROUND がある また、それぞれ処理に同期(sync)と非…

Blocks

Objective-CのBlocksのまとめ といっても全部まとめるとややこしいので、よく使われる関数の引数にBlocksを渡して、コールバックを受け取るという形のみに絞ってまとめます。 とわいえ基本形の復讐 ^(戻り値の型)(引数リスト){式} ところが、関数の引数にな…

UIColorのカテゴリ

以前にUIColorのカテゴリを書いた際に、Hex文字列をUIColorで返すカテゴリを作っていたが、Alphaを16進数ではなく%で送りたい場合のほうが多い気がしたので最近ではこちらを使っている。 Alphaだけ%指定 + (UIColor*)colorWithHex:(uint32_t)hex alpha:(floa…

プリプロセッサ

プリプロセッサ iOS開発においてもC言語のプリプロセッサの機能が使われることが多々ある。 プリプロセッサは、C言語の機能の一つで、C言語の拡張であるObjective-Cでも、Swiftでも使うことができるため、iOS開発者はこれからも使い続けるであろう機能である…

メソッド引数のポインタ

C

メソッド引数のポインタ Objective-Cを書いているとメソッドの引数に +(void)setMessageElement:(TBXMLElement *)element toMessage:(Message**)aMsg { [*aMsg setTest:[TBXML textForElement:test]]; } [self setMessageElement:msgsElement toMessage:&ms…

パフォーマンス改善の意味

パフォーマンス改善の意味 単純なアプリ作成を卒業し、ある程度規模の大きなアプリ開発をしていると並列処理やメモリ解放など、パフォーマンス改善の問題が結構出てくる。 アイディアが実現できればいい、動けばいい、表示に間違いがなければOKと言った作り…

NSOperationQueue

並列処理 iOSで並列処理といえばGCDとNSOperation/NSOperationQueueの2種類があります。 GCDはCベース、NSOperation/NSOperationQueueはObjective-CベースのAPIです。 直列で処理を実行していると、先の重い処理が終わらないとUIの更新が行われず、ユーザを…

Storyboardを分割して管理する方法

Storyboardを分割して管理する iOS開発の画面遷移管理はおおまかに 1.Storyboardをそのまま使う 2.一つのViewControllerにつき一つのxibファイル 3.機能ごとにStoryboardを切り分けて管理 の3つがあると思う。 1.は通常のやり方で教科書等ではこのやり方が…

Categoryクラスの追加

Categoryクラスの追加 Xcode7からFileNewして、Sourceの中にCategoryクラスの追加がない! StackOverFlowに解決策がありました。 NewFile -> Objective-C Fileの追加の中にあるようです。 File Typeの中にありました! File名はカテゴリの名前になります。 C…