読者です 読者をやめる 読者になる 読者になる

sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

「iPhone/iPad アプリケーション開発の教科書」前編

プロの力を身につける iPhone/iPadアプリケーション開発の教科書作者: 藤田泰介出版社/メーカー: ソフトバンククリエイティブ発売日: 2013/02/26メディア: 大型本 クリック: 20回この商品を含むブログを見る さすがに入門書はもうお腹いっぱいなのですが、 …

「OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6」 iOS6編

OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6 (Perfect Master SERIES)作者: 野田ユウキ,アンカープロ出版社/メーカー: 秀和システム発売日: 2012/12メディア: 単行本この商品を含むブログを見る 前回の続き 第15章 iOS6 iOSで、最下部のアイ…

「OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6」 後編

OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6 (Perfect Master SERIES)作者: 野田ユウキ,アンカープロ出版社/メーカー: 秀和システム発売日: 2012/12メディア: 単行本この商品を含むブログを見る 前回の続き 第10章 画像、動画や音 ColorSync…

「OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6」 中編

OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6 (Perfect Master SERIES)作者: 野田ユウキ,アンカープロ出版社/メーカー: 秀和システム発売日: 2012/12メディア: 単行本この商品を含むブログを見る 前回の続き 第5章 アプリケーション ログイン時…

「OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6」 前編

OS X & iOSパーフェクトマスター―OS X Mountain Lion/iOS6 (Perfect Master SERIES)作者: 野田ユウキ,アンカープロ出版社/メーカー: 秀和システム発売日: 2012/12メディア: 単行本この商品を含むブログを見る Winから乗り換えて5ヶ月。そういえば、OS Xの使…

Google Maps SDK for iOS Ver.1.1.2

1.1.0を使ってみる記事 1.1.1でサンプルを読む記事 アップデートはやいね 土曜日の勉強会用のスライドを作るために調べてたら、Ver.1.1.2がリリースされているのに気がつきましたので、仕方なく試してみる事にしました。 リリースノート Updated the SDK to …

クラスからクラス名を取得したり、クラス名からクラスを作ったり

どこかでクラス名をNSStringで取得する方法を読んだ気がしたのですが、思い出せなかったので調査。 改訂2版 Objective-C逆引きハンドブック作者: 林晃出版社/メーカー: シーアンドアール研究所発売日: 2012/05/26メディア: 単行本(ソフトカバー) クリック:…

Google Maps SDK for iOS Ver.1.1.1 後編

前編の続き Samples MarkerSample タップするとUIImageをInfoWindowとして表示するマーカーと、ランダムで7個のマーカーを動的に追加するサンプル。 CustomMarkerSample 地図上にタップ可能なマーカーを追加するサンプル。 GMSMarkerOptionsを使って、ランダ…

Google Maps SDK for iOS Ver.1.1.1 前編

Ver.1.1.2を触った記事はこちら さて、年度内の仕事があっさりと終わって少し時間ができましたので、 いろいろ放置していたものを少し片付けてみようと思います。 まずは、先日試して地図が 表示されなかった Google Maps SDK for iOS。 今日試してみたら、…

「iOSオープンソースライブラリ徹底活用」読みました

iOS

iOSオープンソースライブラリ徹底活用作者: 菊田剛出版社/メーカー: 秀和システム発売日: 2012/12メディア: 単行本 クリック: 10回この商品を含むブログ (1件) を見る iOS用の便利なオープンソースのライブラリを分野別にカテゴライズし、 導入方法と簡単な…

iOS 6.1.3 正式リリース

iOS

DevCenterの方もβが取れてます。うちの4Sにも降って来ていたのでupdateしました。 例によってリリースノートが見つからないので、βの時に読んだもののうっすらとした 記憶しかないのですが、通信時の不具合の改善と、日本の地図が改善されたものだったような…

Xcodeが4.6.1になりましたが…(ちょっと追加)

なんだか通知がでたのでUpdateしてみましたが、 リリースノート を見ても4.6.1の情報が載ってないですよね? 何が変わったのかわからないのは不安なのですが、ま、アプリの申請も出したことだし、 iOS DevCenter見ても何も変わってないし、気にしない事にし…

iOSアプリ開発者への道 その6 アプリ申請

iOS

その5の続き 結局こちらで申請作業を行うことになったため、公式ドキュメントを2本消化。 公式ドキュメント 15. AppStoreへの登録に関するチュートリアル iOS Developer Programへの参加から始まるという、とても手取り足取りな代物ですが、開発とは関係な…

絵文字入りメールのまとめ

iOS

iOSから投げられる絵文字入りのメールに関しては、SBのSJIS絵文字なShift_JISか、Unicode6.0なutf-8となるため、フィーチャーフォンやSPモードといった、キャリアメールを含めての絵文字入りの受信メールは以下に分類される。 この分類は、gmail等の直接絵文…

iOSから送信される日本語テキストメールのcharsetを調査しました

iOS

本業の一つでメールを送受信するシステムのお守りをしている関係で、RFC822の系統や日本語の文字コードやら、Javaにおける文字の取り扱いに関してはそこそこ詳しかったりするのですが、最近そのあたりの研究を怠っているせいですっかり時代に取り残されてる…

Google Maps SDK for iOS を試してみました

2013/4/25 修正 ver.1.2.0からMarkerなどのOverlayの作成方法が変更になりましたので、記事を一部修正しました 2013/3/27 修正 Ver.1.1.2でLinkするライブラリが変更になりましたので、記事を一部修正しました API Keyもやっとこさ作れるようになりましたの…

やれやれ、今度は6.1.2ですか

iOS

ということで、iPhone4Sもアップデート。 こないだ6.1.1を出したと思ったら、すぐに6.1.2ですか…しかも前回直したつもりで直ってなかったところも直していると。 スマホのOSを常に最新のものにしておくのは好きな方なので構いませんが…エンジニアとしては、…

TestFlightでテスターを追加する時に、DevCenterでAdminな開発者がやらないといけないこと

iOS

既にTestFlightでAdHoc配布を行っているアプリに対し、新規のテスターさんを追加する手順のメモ。 簡単に言えば、新規テスターさんの端末のUDIDでアプリが動くようにするために、AdHocなProfileを更新する作業です。 招待メールを送信し、テスターのデバイス…

TestFlight使ってみました

iOS

TestFlight AdHoc配布用の証明書を使って署名したアプリを、ネットワーク経由で手軽に配布できるサービス。 β版や開発中のアプリをクライアントやテスターさんに配布するためのものです。 AndroidならDeployGateですが、iOSならこれ。 UDIDの収集や、配布対…

SQLite3を使うよ その3 読み込み

その2の続き 書き込めるようになったので、今度は読み込みです。 SQLを元にPreparedStatementを作るところまでは一緒で、あとは sqlite3_stepの戻り値がSQLITE_ROWの間、データをfetch(一レコードずつ読み込み)します 読み込み データタイプに応じた読み取…

SQLite3を使うよ その2 書き込み

その1の続き PreparedStatement データベースの用意ができましたので、次は値の読み書きに使えるPreparedStatementを作成します。 AndroidではsqlではなくContentValuesにカラム名とデータをセットしてinsertする方が好きな私ですが、iOSでは勝手が良く分か…

SQLite3を使うよ その1 データベース準備

CoreDataを一夜漬けでなんとかしてみようかとも思ったのですが、サーバーに送信するためにデータを保存しつつ、それを定期的に非同期で上げていくのにCoreDataみたいな大掛かりな永続化の仕組みは要らないよなと思い直し、SQLiteだけで処理することにしまし…

CLLocationManagerで位置情報を取得する(5にも6にも対応)

iOS

お次は位置情報。GPSに関しては、古くは15年位前の船舶用のものから、新しくは準天頂での滞在の長い方用のものまでいろいろとやってきましたが、携帯やスマホに搭載されるようになって、手軽にいろいろと遊べるようになりましたよね。 さて、以前の記事でも…

NSNotificationCenterでプロセス内通信

iOS

AndroidのBroadcastRecieverみたいなものはないのかと探していましたら、ちゃんとありますね。 NSNotificationCenter 通知を受け取りたいObserver(androidではReciever)がdefaultCenterに登録して、送りたい側が通知するというもので、プロセス内で非同期に…

あれ?Attitudeも要るの?

iOS

前の記事で加速度の取得ができるようになったのですが、端末の傾き(pitchとroll)も必要だったことに気づき、それならCMDeviceMotion使えばいろんなデータとれるしってことで修正。 [_motionMgr startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQu…

加速度を取得する & データはセマフォで保護しよう

iOS

iOSで加速度を取得するのにはいくつか方法があるらしく、古くはUIAccelerometer とかでやっていたようですが、5.0以降はCoreMotionフレームワークを使えとのことなので、それに従って実装してみました。 なお、CoreMotionでの方法にも2種類あって、ひとつはC…

アプリがフォアグラウンドにいる間だけ処理をする

iOS

アプリがフォアグラウンドにいる間だけ、何かを処理したいことってよくありますが、 ( インターバルタイマーみたいなやつ) UIApplicationDelegateのapplicationWillResignActive:だと、Notificationを引き出した時や、電話の着呼の状態でも呼ばれてしまい都…

selectorが実装されているかどうかを調べる

iOS

protocolの@optionalなメソッドが実装されているかどうかを調べる方法。 プログラミングガイドで目にして、なるほど、こうやって古いバージョンでも動くようにつくるのかと関心していたのですが、いざとなると全く思い出せなかったのでメモ。 NSObject の re…

GCDでインターバルタイマー

iOS

インターバルタイマーを実装するのにお手軽なのは何かと考えて、NSTimerとか使った事のないクラスを調べるのも面倒なので、GCDを使う事にしました。何でも揃ってて本当に便利なGCDは手放せません。 さて、タイマーと言っても、実際にはdispatch_sourceの一つ…

@propertyと実体と@synthesize

iOS

さっき試してみて初めて気がつきましたが、 @propertyでプロパティと、'_' + プロパティ名の変数を自分で定義しても、 warningが出る事も無く、ちゃんと連動してくれるっぽい? 最近(というか4.5.2から)Xcodeを触り始めたので@synthesizeを使った事も無く、…

4SをiOS 6.1.1にアップデート

iOS

betaをいれようかどうしようか悩んでいるうちに、正式版がリリースされちゃいましたね。 さっそく、4Sをアップデート。なにやら4Sのみとのことで、Verizon版での6.1の不具合(異常に電力消費量が増える?)とか、その辺りに関連してでしょうか? au版では特に問…

Hang Drum いいな

hang insomniac jam これってHang Drumって言うんですね。 本物は零をつけ間違えたのかと思うほど高いけど、iOS用のアプリでも雰囲気は味わえるみたいです。 https://itunes.apple.com/jp/artist/dizzy-studios/id398378897 タッチの強弱で音量が微妙に変わ…

iOSアプリ開発者への道 その5 チームとDevCenter

iOS

その4の続き 公式ドキュメント一本を消化。一通り終わったら 総集編としてまとめないといけないですね… 公式ドキュメント 14. AppStoreでの公開に向けた開発 Teamの編成や、証明書やプロファイルの役割といった、自分でアプリの公開までを行う人にとっては…

受託でクライアントの開発Teamメンバーとして作業を開始する時のフロー

iOS

普段は自社(自分)のTeamの一員として、自分のアカウントでDevCenterにアクセスしているだけで充分なのですが、受託だと最終的にクライアントのTeamに所属しての作業が必要ですよね。 ということで、準備しないといけないことをなんだかんだとメモ。 iOSだけ…

アプリケーションの署名とプロビジョニングプロファイル

iOS

クライアントからiOS Developer TeamのInvitationがやってきたので、自分の会社のTeamで開発していたものを、そちら用のものにするための調査をしました。 こーゆー切替も初めてでわけがわからず、3ヶ月ぶりに証明書やプロビジョニングプロファイル作りにあ…

volatile ついでに atomic

JavaとObjective-Cのvolatileがなんか違うような気がするので調べてみました。 変数に対する修飾子のひとつ。 単語の意味は、揮発しやすいとか変わりやすい。 こんな名前になったのは、「何もしていないのに勝手に値が変わるかもしれませんよ」ってのを示す…

iOSアプリ開発者への道 その4 Stream

iOS

その3の続き 本の追加と公式ドキュメント一本を消化。 書籍 7. 改訂2版 Objective-C逆引きハンドブック Tips集。iPhone/iPadアプリ開発逆引き大全500の極意―Apple MacOS X Lion対応 iOS5 SDK/Xcode4対応とかぶる部分もあるが、こちらにしかかいていないこと…

NSStreamでクライアントとしてTCPソケット通信を行う おまけ TLSに対応

iOS

その3のおまけ プレーンな通信ができるようになったので、いよいよ次の段階、TLS(むかしはSSLって呼んでました)で通信できるように改造しました。 といっても、ROOT証明書がiOS側に組み込まれているサーバーに対する、クライアント認証なしの普通の通信だけ…

iOS 6.1.1 beta

iOS

6.1.1 beta公開ですか。 リリースノートを読む限りでは、地図(とナビ)がよくなっただけみたいですね。 どうせGoogleMaps for iOS使ってるから普段の生活には影響ないし(というかメイン端末は4.2.1なGalaxyNexus。N4欲しい…)ということで迷いますね… iOS屋に…

Objective-Cのリテラルと、ArrayとDictionaryのSubscripting

Objective-Cの文法を再確認しているところですが、リテラルの書き方をすぐに忘れるのでメモ。 あとNSArrayとNSDictionaryはSubscriptingでタイプ量が減らせるので、もっと利用するようにしないと。 NSNumber @数字 @1 NSString @"文字列" @"hoge" NSArray @[…

NSStreamでクライアントとしてTCPソケット通信を行う その3 完成

iOS

その2の続き まだ完全にテストはできていませんが、GCD専用で、メソッドが同期モードな、ソケット通信を行うクラスが出来上がりました。 クラス定義 命名規則等は慣れていないのですが、こんな感じで。 @interface TFTCPConnection : NSObject<NSStreamDelegate> @property (r</nsstreamdelegate>…

AndroidでUIActionSheetみたいなのを出したい?

Androidにあーゆー縦並びのボタンの文化はないから、AlertDialogでいいんじゃない?とか思ったりしますが、世の中では割と需要があるんでしょうか?(iOS->Android組?) んで個人的には、AlertDialogにカスタムViewを貼るのがいいんじゃないかなと思います。 …

GCDを使った同期通信処理の検討

iOS

ステートフルなプロトコルでサーバーと通信を行う時って、 サーバーに用意されている最大データ数を受信して 受信したいデータ数を送信して その数分だけのデータを受信して 受信完了ステータスを送信 こんな風に、同期モードでシーケンシャルに書きたくなり…

iOSアプリ開発者への道 その3 メモリ管理と同期

iOS

その2の続き ぼちぼちと読み進めてます。 公式ドキュメント 11. 高度なメモリ管理プログラミングガイド MMRでのメモリ管理のためのあれこれ。ARCを使わないなんて時間の無駄なので、これはもう読まなくても大丈夫なドキュメントだと思います。用語としてそ…

@propertyの属性

iOS

@property (strong, nonatomic) NSString* hoge とかの ()の中に書くやつ。 ARC環境下だと参照カウントの存在を忘れがちですが、プロパティとかの属性に気をつけないとたまにはまります。私の場合、まだまだひよっこでiOSのメモリ管理に慣れていないため嵌り…

CFHostによる名前解決

iOS

TCPソケット通信の記事に関連して、 CFHostを使いまわせば名前解決が最初の一度で済むなとかアホなことを考えて、ちょっと実装してみることにしました。 手順は公式ドキュメントのネットワーキングコンセプトの通りで、 CFHostCreateWithNameでCFHostRefオブ…

NSStreamでクライアントとしてTCPソケット通信を行う その2 クラス設計

iOS

その1の続き 手順はわかったので、実際に通信をするためのヘルパークラスを設計します。 delegateで非同期な通信が用意されているのは良いのですが、呼び出す側としては処理が面倒です。呼び出し元をGCDの並列キュー等の非同期で動かす事を前提として、ヘル…

NSStreamでクライアントとしてTCPソケット通信を行う その1

iOS

今作っているiOSアプリは、以前に作ったAndroid版の移植物なんですが、アカウント認証がwebで、実際のデータは、Androidと共用の自作サービスでやりとりすることになってます。 サーバー側のアプリはTCPで特定のポートをListenし、てきとーに自分で定義した…

iOSアプリ開発者への道 その2

iOS

前のエントリ の続き 実際にアプリを書きながらなので、Tips集とDocumentationとネットの検索に頼る事が増えましたが、平行して少しずつドキュメント類を消化している毎日です。(相変わらず納期は厳しいけれど…) どこまで理解すればいいのかはわかりませんが…

排他表示のUIViewをアニメーションで差し替える

iOS

一つのWindowの中に、排他で表示されるUIViewを複数保持し、Flip等のアニメーションをしながら別のViewへと表示を切り替える方法です。 UIView の transitionFromView:toView:duration:options:completion: を使えば簡単。表示中のViewと切替後のViewとアニ…