[iOS][iBeacon] iOS 7.1 からアプリを起動していなくても領域観測できるようになったので、さまざまなバックグラウンド処理を試してみた
一つの関数内で容量の大きなファイルを読み込み加工する処理を連続して行っていたらメモリが足りなくなった。 ARC ではスコープを外れ(て参照カウンタがゼロになっ)たオブジェクトは、すぐに破棄されると思っていたのでしばらくハマった。 問題のソース(ARC使用) ローカルでもWebでも何でもいいけど、ファイルから無視できない程度の容量のデータの読み込みを繰り返す処理。 - (IBAction)buttonDownWithArc:(id)sender { NSString* path = @".../bigdata.img"; for (int i = 0; i < 10000; i++) { NSData* data = [NSData dataWithContentsOfFile:path]; [NSThread sleepForTimeInterval:0.5]; data = nil; }
Helpshiftというモバイルアプリ用のサービスが凄い。ユーザのフィードバックを出来る限り欲しいアプリ開発者やスタートアップはぜひオススメ。iOSとAndroidにネイティブSDKで組み込む。 こういうサービスをずっと探してたんだけど、なぜか今までよいのがなかった。やっと出てきて嬉しい。 なぜ欲しかったか 製品開発ではユーザの意見を詳しく聞いたり、ユーザがいかに低コストでフィードバックしやすい状況を作るかが凄く重要。 Webサービスだとユーザがすぐにサービス提供者側とチャットできるoLarkとか、素晴らしいサービスがいっぱいあるんですよ。 ただ、ネイティブアプリには似たようなサービスがなかった。 iPhoneアプリでよくあるのは、アプリ内にフィードバックボタンがあって、それを押すとメールで送信するモーダルが立ち上がるもの。 ただ、メール設定してなかったら動かないし、メール送るのって思った
こんにちは。 Sleipnir Mobile for iPhone / iPad 開発担当の宮本です。 調べてみると、Sleipnir Mobile の最初のコミットは 2010年9月6日で、もう3年近く開発しているようです。最初はこんな貧弱な API でブラウザなんて作れるわけ無いと思っていましたが、なんとかなるものですね。今では多くのユーザーさんに使っていただけるプロダクトになりました。 今回は、この3年間で、使ってきた UIWebView の技を紹介したいと思います。詳細な方法については書きませんが、UIWebView で何ができて何ができないのかはわかるかと思います。それぞれの詳細なやり方については機会があれば書いていきたいです。 目次 長くなりそうなので、目次を用意しました。 余裕があればアップデートするので、ブックマークでもしておいてください。 UIWebView の API
最初は、ボタンにsettagでindexpath.rowを付けていたけど、スクロールすると数字が狂うので何とかならんものかと考えていたら見つけたのでメモメモ まず、cellForRow〜でボタンを設置する buttonY = [UIButton buttonWithType:UIButtonTypeRoundedRect]; buttonY.frame = CGRectMake(200, 5, 50, 30); [buttonY addTarget:self action:@selector(buttonYpush:) forControlEvents:UIControlEventTouchUpInside]; [buttonY setTitle:@"Y" forState:UIControlStateNormal]; buttonY.tag = 10; [cell addSubview:
iOSアプリでコンソールにログをだしっぱなしにすると申請時にNGになるとか。でも、開発時にはログを出しときたい。どーしましょと思ってたら、マクロ使えば良いんだね。だってベースはC言語なんだし。:-) 参考にさせてもらったのはこちら NSLog tips and tricks - stackoverflow 書き方はこんな感じ。これを MyApp_Prefix.pch に埋めこんでおけば OK #ifdef DEBUG #define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else #define DLog(...) #endif マクロ変数の意味はこんな感じ マクロ変数 役割 __PRETTY_FUNCTION__ 関数/メソッド名(引数、戻り
前回の記事に引き続きPUSH通知ネタです。 前回はクライアント側コードの記述方法について触れましたが、今回は証明書発行の手順をまとめます。 証明書関連は何かとややこしい部分が多いので、後で迷わないよう詳細に書きます。 前提条件 PUSH通知に使うアプリのProvisioning Fileは作成済という前提で手順をまとめます。Team Provisioning(.*)でないアプリ固有のProvisioning Fileをまだ作成してない方は、以下リンクを参考にご用意下さい。 iPhone Push通知のすすめ また、PUSH通知の設定は開発環境と本番環境で異なる点が多いのですが、 今回は開発環境での準備を整えていきます。 本番環境だと通知がうまくいかない例 もありますので、その点はご注意下さい。 PUSH通知に使うAppleの証明書の準備 ブラウザ操作 iOS Dev Center のCer
iOSにて以下あたりのライブラリを使ってAESにて暗号化をした際に、その暗号文字列をrubyでデコードする際にちょっとはまったので備忘しておきます。 https://gist.github.com/838614 iOSのコード NSString *plain = @"paco"; NSString *key = @"32byte32byte32byte32byte32byte!!"; NSString *enc = [plain AES256EncryptWithKey:key]; NSLog(enc); // mmNQPHai0BjORX3jCeY3YQ== が得られる NSLog([enc AES256DecryptWithKey:key]); rubyのコード # -*- coding: utf-8 -*- require 'openssl' key = "32byte32byte3
iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど AESで暗号化・復号化できる CCCrypt の簡易ラッパー FBEncryptor を作りました。結果(バイナリ値)を Base64 で受け取ることもできます。 dev5tec/FBEncryptor - GitHub 暗号化方式 アルゴリズム:AES 128 モード:CBC 鍵長:256ビット パディング:PKCS7これ一種類だけ インストール GitHubからプロジェクトをダウンロードした後 Xcode 4 で開く。その中から下記のファイルを自分のプロジェクトへコピーして追加する。 FBEncryptorAES.h FBEncryptorAES.m NSData+Base64.h NSData+Base64.m 使い方 NSDataベースの暗号化・復号化 Data系メソッドを使う
私の考える最強のデザイナーは、ビジュアル的・UX的に良いデザインができるデザイナーですが、最強の“プロ”デザイナーは、そのデザインの実装コストが見積もれて、それに応じて段階的な実装の指示が出せるデザイナーだと思っています。 アプリ開発の現場では、爆速で(低コストで)最もBetterなアプリを作るのが非常に大事です。低コストで美しいデザインを実装したいですもんね。なので実装コストの感覚があるプロデザイナーは、最強なんじゃないかと思ってます。 しかし、特にiPhoneアプリにおいては、エンジニアであってもビジュアル面の実装コストが見積もれなかったり、実装がとても困難になることがあります(HTML・CSS・JSよりも相対的に難しいんじゃないかなあ、と個人的には思っています)。そのためしばしばライブラリに頼って実装することでコストカットを図ります。 今回は、そのライブラリに焦点を当てて、コストを見
iOSアプリ開発担当の菅原です。 iPhoneやiPadのア[...]【厳選】日本の全iOSプログラマに捧ぐ!iPhoneアプリ制作に参考になりすぎるデザインリンク集15選 by Yu Sugawara in Design · Mobile — 2013/07/18 iOSアプリ開発担当の菅原です。 iPhoneやiPadのアプリ開発はすべて一人で販売するところまで持っていけるのが魅力の1つです。 アプリ開発作業を大きく分類しますと プログラム デザイン 販売 にわかれます。販売に関してはAppStoreがあるので、心配はありません。残りのプログラムとデザインですが、なかなか両方を得意にするというのが難しいと思います。僕はプログラムは出来るのですがデザインがからっきしダメです。 今日はそういったデザインが苦手なプログラマ向けに参考になるデザインリンク集をご紹介いたします。個人のアプリ開
iOSアプリをデバッグするときにNSLogを使ってログを確認するのは皆さんも良くやっていると思います。実際に業務で構築するときは、案件に合わせてマクロを定義してデバッグ時とリリース時の出力を制御したりする方も多いのではないでしょうか。毎回この設定を行うのは非常に面倒です。そこで登場するのがCocoaLumberjackです! CocoaLumberjackとは? CocoaLumberjackはiOSで利用できるオープンソース(BSDライセンス)のログライブラリです。出力先にコンソール以外を選択することができたり、予め用意されたログ出力レベルに応じてしこんだログの出力を制御できたりと非常に柔軟に使用できます。また、NSLogよりも高速に動作するらしいです。では早速使ってみましょう! CocoaLumberJackの導入 CocoaLumberJackの導入は非常に簡単です。方法は以下の2つ
PixateはMac OSX用のソフトウェアです。 iOSアプリのデザインはXcodeを使って行うのが一般的です。しかしWebデザイナーや開発者にとっては思い通りにいかなくてやきもきするときがあるかも知れません。そこで注目したいのがPixateです。何とスタイルシートと同じ記述で画面を作成できます。増資し、フリーになりました。 ボタンのデザイン。確かにスタイルシート調です。 記述を変えればダイナミックに描画が変わるのも特徴です。 SVGの表示も行えます。 さらにタップすると線だけに。 こちらはプレイグラウンド。様々な表示例があります。 ラベル。テキストエリアの部分は変更できます。 こんな感じにダイナミックに文字サイズを変更できます。 地図のポインター部分の大きさを変更。 本当に数多くのデモがあります。 検索ボックス。 セクション付きのテーブルビュー。 様々なテキストビュー。 Pixateは
iOSアプリのUIを爆速で激ヤバにする2つのライブラリ:生産性ガチアゲなオープンソースiOSライブラリ(2)(1/4 ページ) ゼロからiOS SDK開発を始める新規開発者でも超高速・高品質な開発を可能にするオープンソースのライブラリを目的別に紹介していく連載です。実際にライブラリを組み込みながら技術的な側面も併せて詳細に説明していきます。今回は、Clearのような折り畳みやFlipboardのような本めくりエフェクト、Twitterのようなプルリフレッシュを実現する方法を紹介します。 「あのアプリのあの機能」を実現するEGOTableViewPullRefreshとMPFoldTransitionを使ってみた 「良いアプリの条件」というと何が思い浮かぶでしょうか。例えば、誰も実現してない機能を実装していたり、パフォーマンスが良かったり、動作が安定していたり…… とさまざまな意見があると思
Helios は これ。 単なる勉強ログなのでおそらくあまり参考にはなりません。 また、Sinatra 関係が多かったのでざっくり省略してあります。 1. Helios を構成する iOS 連携ライブラリ群 すべて Heroku のmattt (Mattt Thompson)氏によるもの。 1-1. cupertino mattt/cupertino · GitHub Automate administrative tasks that you would normally have to do through the Apple Dev Center websites. Life's too short to manage device identifiers by hand! Ruby から Apple Developer Center にアクセスできる驚異のライブラリ。 ターミナルか
Apple Services Marketing Tools Share links, custom assets, badges, widgets and more. Afghanistan Albania Algeria Angola Anguilla Antigua and Barbuda Argentina Armenia Australia Austria Azerbaijan Bahamas Bahrain Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Brazil Brunei Darussalam Bulgaria Burkina Faso Cambodia Cameroon Canada Cape Verde Cayman Islan
iOSではデータの保存場所として特定のディレクトリを利用することができます。 Best Albumではサムネイル画像、オリジナル画像を全てキャッシュディレクトリに保存しているのですが、パフォーマンス的に全く問題がなく、今後活用する機会も増えそうなのでまとめておきます。 ディレクトリ構造 /Documents アプリ固有のデータファイルを保存するディレクトリ (バックアップされる) /Library/Preferences アプリ固有の環境設定ファイルを保存するディレクトリ (バックアップされる) NSUserDefaults or CFPreferencesAPI経由で読み書きする /Library/Caches アプリ固有のサポートファイルを保存するディレクトリ (バックアップされない) /tmp 一時ファイルを保存するディレクトリ (バックアップされない) パスの取得 上記ディレクトリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く