まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

2014-01-01から1年間の記事一覧

viewController単位での回転制御

普段、縦画面固定のアプリを作る事が多いので、縦横対応などが出てくると見事にハマってしまいました。 原因と解決方法などのメモ。 やりたかった事 基本的には縦画面固定だが、一部の画面で縦横対応にしたい ハマったポイント -(BOOL)shouldAutorotate;でNO…

Apple Store, Omotesando

先週金曜日にAppleStore表参道店とウワサされていた工事物件の 覆いが外され、 「Apple Store, Omotesando もうすぐ」 「ケヤキの樹の下で、ちょっと特別なことが始まります。」 との表示がなされています。 ネットでもこの話題で持ち切りでしたね。 実際、…

UIColorの色指定

UIColorの色指定は標準で十数色の色が定義されていて、以下のように指定ができます。 [UIColor redColor] それ以外の色を指定する場合は [UIColor colorWithRed: green: blue: alpha:] などで指定する必用があります。 これではあまりにも面倒なので、以下の…

タスクスイッチャーで任意の画像を表示する

iOS7からタスクスイッチャーに入っているアプリは、バックグラウンドに遷移した時点の画面がサムネとして表示されていますが、アプリによってはここにあまり表示しない方がよかったり、別の情報を表示できた方がよかったりすることもありますよね。 そんな時…

アプリ申請時のスクショはどこまで手を加えてもいいか問題の結論

アプリ申請時のスクリーンショットは、ユーザーがインストールするか否かを判断する大きな判断材料になります(特に1枚目)。 なので、できるだけいいピクチャをアップしたいですし、できれば装飾なんかも加えて見栄えを良くしたり、よりアピールができるピク…

レビューと言えないような酷い書き込みは削除できるらしい

App Storeに投稿された不快なレビューを削除する方法 一時期、日本のApp Storeの一部のアプリのレビュー欄で誹謗中傷とか、的外れな批判が酷いという話を聞いた事があるのですが、 レビューと言えないような不快な書き込みは消す事もできるようです。 Macか…

ホームスクリーンに表示されるタイトルもASOの対象?

BundleDisplayNameを使ったASO対策がローカライズ対応に凄く使える ASOといえば、 アプリタイトル 説明文 keyword レビュー評価 レビュー文言 などが重要かなと思っていたのですが、タイトル欄に入りきらない文言も検索対象になっているとの事。 個人的には…

プログラムの処理時間を計測する

処理時間計測の簡単な方法としてはNSLogを処理の始めと終わりに出力してその時間差を計算する方法がありますが、もう少し正確な計測をしてみたいと思います。 方法は以下の通り! //これをインポートしておく #import <sys/time.h> //任意のメソッド内の記述 struct time</sys/time.h>…

意外と面倒!タイムラインで見られる1時間前、1日前といった文字列を生成する

関連記事 NSDateの罠 - まいまいワークス サーバーから取得した時間情報を元に、現在の時刻から計算を行い、タイムラインで見られる1時間前、1日前といった文字列を生成します。 サーバーが日本時間を基準に値を返し、iPhoneで設定された時間帯がアメリカだ…

Xcodeユニットテスト事始め

自作クラスに対して、修正が入るたびに手動でテストを行うのはあまりにも非効率なのでユニットテストの調査を行いました。 本エントリはその初歩の初歩。 テスト対象のクラスを作成 ここではテスト用の簡単なクラスを定義します。 #import <Foundation/Foundation.h> @interface MyCla</foundation/foundation.h>…

アラートにテキストフィールドを追加する

ちょっとしたテキスト情報の入力とか、ID/Passの入力などわざわざviewをつくるよりアラートでできた方が便利ですね。 今回はそのやり方。 UIAlertView* alert = [UIAlertView new]; alert.title = @"タイトル"; alert.message = @"メッセージ"; alert.delega…

CocoaPodsでライブラリのライセンスの表記を自動生成してみた

オープンソースのライブラリの中には使用している旨を明記しなければいけないものがあったりするのですが、これがなかなかめんどくさいのです。 しかしながらCocoaPods自動生成のフローを一度作ってしまえば後はファイルのコピペと少しの書き換え程度で使い…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#8]〜Facebookのフィード投稿〜

メッセージの投稿 これが投稿の基本パターンになります。 //例によって以下の項目をインポートする #import <Parse/Parse.h> #import <FacebookSDK/FacebookSDK.h> #import <AFNetworking/AFNetworking.h> -(void)fbpost:(NSString *)message{ //プライバシー(公開範囲)の設定 NSDictionary* privacy = @{@"value":@"CUSTOM", @"frien</afnetworking/afnetworking.h></facebooksdk/facebooksdk.h></parse/parse.h>…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#7]〜Facebookアカウントでの認証〜

基本的な設定 ここはすでに前回のTwitterアカウントでの認証で行っているので省略 Facebook認証 -(void)facebook{ // パーミッション // タイムラインにユーザーに代わって書き込むにはpublish_streamが必要 NSArray *permissionsArray = @[ @"user_about_me…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#6]〜Twitterのタイムライン投稿〜

メッセージのみを投稿 //以下の項目をインポートしておく #import <Parse/Parse.h> #import <FacebookSDK/FacebookSDK.h> #import <AFNetworking/AFNetworking.h> //twitter 文章のみ投稿 -(void)tweet:(NSString *)message { //URLとパラメータを生成 NSString* url = @"https://api.twitter.com/1.1/statuses/update.json"; NSMutab</afnetworking/afnetworking.h></facebooksdk/facebooksdk.h></parse/parse.h>…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#5]〜Twitterアカウントでの認証〜

基本的な設定 //ParseとFacebookのSDKをimport #import <Parse/Parse.h> #import <FacebookSDK/FacebookSDK.h> //アプリ起動時の設定 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ //Parse初期設定 [Parse setApplicationId:@"Pars</facebooksdk/facebooksdk.h></parse/parse.h>…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#4]〜Parseの登録と設定〜

Parseは最近話題のmBaaSのひとつで、プッシュ通知、ユーザー管理機能、データストアなどのサーバー側の機能を提供してくれます。 ここではユーザー管理機能のみを使いTwitterとFacebookアカウントによる認証を行います。 登録 ParseのURLはこちら アクセスし…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#3]〜Facebookのアプリ登録〜

登録 Facebookの開発者ページに入り、右上の+Create New Appをクリック Display Name,Namespace(optional)を入力し、カテゴリを選択します。 設定 次に各種設定を行います。 アプリケーションIDとアプリのシークレットキーをメモっておきます。 連絡先メール…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#2]〜Twitterのアプリ登録〜

登録 Twitterの開発者ページに入り右上のSigninからサインインします。 サインイン後、右上のボタンからMy Applicationsを選択します。 Create New AppからName, Description, Website, CallbackURLを設定します。 Name,Websiteは認証画面の表示に反映、Call…

Twitter/Facebookのアカウントで認証して、アプリからタイムライン/フィードに投稿する[#1]

アプリの機能としてはポピュラーなもので、需要はあるはずなのになぜか日本語の解説記事やブログネタとしては、ほとんど目につかないこの課題。 実装する機会があったのでいろいろ調べて、なんとかログインから投稿までたどり着けたので手順をここに記してい…

NSDateの罠

自社サービスでも複数のサービスで数回NSDateの罠にはまっているので、あらためて要点をまとめたいと思います。 NSDateが登場する場面 ・端末から現在の時刻を取得 ・UIDatePickerから任意の時刻を取得 ・サーバーからyyyy-MM-dd HH:mm:ssなどの形式で取得 …

メンテナンスを考慮した設計

iOS アプリのメンテナンス性を高めるための基本的な考え方 from kakegawa-atsushi 設計時は画面単位ではなく、機能単位で考えればいい設計が出来るかな。 そのためには開発着手以降は仕様を変えないでほしいですね。 って言っても、そんな事は現実的ではない…

Xcodeを使い倒して効率化

タイトル若干釣り気味ですw objective-Cの構文って長いものが多かったり、普段よく使うものでもプロパティの種類がたくさんあったりで、完全に覚えているものはほとんどありません。 で、これまでどうやってきたかと言うと、過去のソースからコピペしたり、e…

UITableView・UICollectionView攻略

iOSアプリの要となるtableviewとcollectionviewですが、設計の要点をおさえておかないとちょっとした事でスクロール時のパフォーマンスが落ちてしまい、アプリそのものの完成度の印象も格段に落ちてしまいます。 特にcollectionviewは1行に複数のアイテムが…