タグ

プログラミングに関するKyoheiG3のブックマーク (161)

  • 第 2 回・iOS7で iBeacon を使用してみよう! | ギャップロ

    新機能 iBeacon とは? 指定した領域を観測するために iOSでは以前から Core Location フレームワークを使用していました。その Core Location フレームワークに、今回新たに iBeacon という機能が追加されました。 以前までは、デバイスを観測するために、地理的地域の観測を行っていました。この方法は GPS 等の機能を使用してデバイスを検出する、という方法をとっていたために近距離の観測には向かず、また屋内では GPS が取得できないことが多いなどの問題点がありました。 iBeacon は、Bluetooth LEを使用することで、「ビーコン」と呼ばれる発信器の、近接や距離を検知する事が出来るようになります。このビーコンには、「Bluetooth LEタグ」という名称で市販されている物や、iOS 端末を使用する事が出来ます。これにより、GPS では実現でき

    第 2 回・iOS7で iBeacon を使用してみよう! | ギャップロ
  • 第 3 回・iOSでMultipeerConnectivityを実装してみよう! | ギャップロ

    iOS7から追加された Multipeer Connectivity は、複数台での擬似的なP2P通信を行うための仕組みです。これにより近距離でのデータ通信を、サーバを介さずに行うことができます。 この Multipeer Connectivity は、NSData 型のデータを送信することができます。そのため、シリアライズ・デシリアライズの機構さえきちんと作成することができれば、画像や音声など、実質どのようなデータでも送ることが可能です。 これらのメリットを活かす事により、リアルタイムのチャット機能や、更にはホワイトボードの画面を共有するようなアプリ、簡単な資料を共有することだってできてしまうでしょう。 では早速この新機能を試してみましょう! Multipeer Connectivityで通信を行うまでの流れ Multipeer Connectivity を利用して通信を行う方法について

    第 3 回・iOSでMultipeerConnectivityを実装してみよう! | ギャップロ
  • New Relic プラグイン開発入門 (Java 編) - mallowlabsの備忘録

    New Relic が New Relic Platform と銘打って、 様々なミドルウェアの監視をプラグインで追加できるようになりました。 当然プラグインを開発するための API も提供されています。 実際にプラグインを作ってみたので共有します。 New Relic プラグインの特徴 LITE (無料) プランでも利用可能 ただし、LITE プランだとデータの保存期間が24時間になる 言語はなんでも可。RubyJava はサンプルがあるので楽。 時系列で数字が決まるデータであれば、なんでも記録可能 例えば自分の体重の推移を記録することも技術的にはできる プラグインは公開しなくても利用可能 シンプルな仕組み故に柔軟性が高く、扱いやすい印象です。 今回開発するプラグイン New Relic LITE プランでは、Java メモリ使用率のグラフが見えません。 PRO 以上のプランであれ

    New Relic プラグイン開発入門 (Java 編) - mallowlabsの備忘録
  • iOS6からiOS7への対応

    社内で書き残していた内容をブログに書き写した内容となります。個人アプリをiOS7に対応させた時に書き残した内容なので掲載画像がアレですが気にしないでください。 ①アイコンの追加対応 iPhoneで1種類、iPadで2種類増加されました。iPhoneが1種類しか必要ないのは対応バージョンに非Retinaが無いためです。 iPhone(120x120) ・Icon-60@2x.png iPad(76x76/152x152) ・Icon-76.png ・Icon-76@2x.png ②storyboardで作成した箇所のレイアウトが崩れる対応方法 Xcode4.6以前で開発していたプロジェクトをXcode5で起動し、初めてstoryboardを開いた時にstoryboardで作成した全レイアウトを自動調整してくれる。もしくは警告にそれっぽいメッセージがあるのでクリックすると自動修正されます。それ

    iOS6からiOS7への対応
  • コレクションのコピー

    『はじめてのiPhoneプログラミング』の文中で、『NSMutableCopyingのコピーは浅いコピーなので~』の説明が足りない気がしたので調べてみました。 オブジェクトのコピーとしては『浅いコピーと深いコピー』として『詳解 Objective-C 2.0』に解説があるのですが、辞書の場合についてもう少し知りたくて検索した所『Collections Programming Topics』というリファレンスがありましたので、『Copying Collections』の項を訳してみます。 ●コレクションのコピー オブジェクトのコピーには浅いコピー(Shallow copy)と深いコピー(Deep copy)の二種類があります。 通常のコピーは浅いコピーで、新しく生成したコレクションの所有権は元のオブジェクトと共有しています。 深いコピーは元から新しいオブジェクトを生成し、新しいコレクション

  • The trusted source for IP address data, leading IP data provider

    The trusted source for IP address dataAccurate IP address data that keeps pace with secure, specific, and forward-looking use cases. Sign up for freeContact sales

    The trusted source for IP address data, leading IP data provider
  • 「SEO的に優れた無限スクロールの実装方法」Googleからのアドバイス ::SEM R (#SEMR)

    SEO的に優れた無限スクロールの実装方法」Googleからのアドバイス Googleが検索エンジンに配慮した無限スクロールの導入方法を公式ブログでアドバイス。クローリングできるようページ分割したものを用意するのが原則。プログレッシブ・エンハンスメントを前提に設計しよう。 公開日時:2014年02月14日 02:16 米Googleは2014年2月13日、検索エンジンフレンドリーな無限スクロール(Infinite Scroll)の導入方法についてのアドバイスを公式ブログに掲載した。John Mueller, Maile Ohyed, Joachim Kupkeの3人による上級者向けの投稿だ。 記事では、翻訳ではなく、軽く Google のアドバイスの要点を押さえつつ、私個人の意見を述べていく。 無限スクロールとは Twitter や Facebook でも導入されているので既にお馴染みか

    「SEO的に優れた無限スクロールの実装方法」Googleからのアドバイス ::SEM R (#SEMR)
  • 頑張ってOCLintを使ってみた結果 - blog.ishkawa.org

    意識が高まり、OCLintを使ってみました。 手順 OCLintの公式のドキュメントを頑張って読んでも使い方はわかるのですが、 以下のリンク”Give a try”という項目に従うと手っ取り早く試せます。 Integrating OCLint in Xcode 結果 ISRefreshControlで試しました。 ご覧の通り、たくさん怒られています。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Pods/ISMethodSwizzling/ISMethodSwizzling/ISMethodSwizzling.m:9:1: long line P3 Line with 138 characters exce

  • BlockからSelector(メソッド)を作る - Qiita

    そんなに使い所はなさそうだけど。 performSelector メソッドのように、SEL 型のオブジェクトを引数に指定しないといけない場合、メソッドは予め用意しておく必要がある。

    BlockからSelector(メソッド)を作る - Qiita
  • 15 Responsive CSS Frameworks Worth Considering - Speckyboy Design Magazine

    CSS frameworks are pre-written CSS files that help web designers and developers create websites faster and more efficiently. They are perfect for those looking to launch projects without getting bogged down in the details of coding CSS from scratch. In this collection, we’re focusing on smaller, lightweight frameworks. These minimalist frameworks all offer a simpler alternative to more comprehensi

    15 Responsive CSS Frameworks Worth Considering - Speckyboy Design Magazine
  • JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない

    続いて、開発するアプリの登録を行います。アプリの登録では【1】アプリ名や識別名などの登録、【2】プロビジョニングプロファイルを作成しダウンロード、インストールします。 これらの準備が終わったら、App Storeへ公開するためのアプリ開発、パッケージング、アップロードといった流れになります。 「Jenkins Xcode Integration Plugin」でビルドを自動化 このアプリ公開までの作業のうち、いくつかをJenkinsによって自動化することで継続的にアプリを公開できるようになります。通常、アプリのビルドやパッケージングはXcodeから行うことになりますが、Jenkinsから実行する場合にはXcodeのコマンドラインツールである「xcodebuild」などを使って処理を行います。 Jenkinsジョブからシェルを起動してxcodebuildなどのコマンドを直接実行するか、「Je

    JenkinsでCIすればiOSアプリのビルドは、もう面倒くさくない
  • アプリ内課金(In App Purchase)に関するリジェクト事例と仮想通貨について | MemeTodo

    2011年9月15日木曜日 アプリ内課金(In App Purchase)に関するリジェクト事例と仮想通貨について Appleのアプリ審査ガイドライン、UIWebViewに関係するリジェクト事例と似たようなお話ですが、In App Purchaseについてのリジェクト理由や事例などを調べてみました。 最初に、アプリ内課金での仮想通貨購入について 初めにIn App Purchase プログラミングガイドを見てしまったので、混乱の元みたいな気がしますが、In App Purchase プログラミングガイドには以下のように書かれています。 (iOS Developer Library) In App Purchaseは、プロダクトを作り出すための汎用のメカニズムを提供しますが、プロダクトの 実装方法の詳細はデベロッパにゆだねています。ただし、アプリケーションの設計においては、以 下に示すように

  • Objective-C のプロパティ属性のガイドライン - Qiita

    Objective-C のプロパティの属性を指定するとき従うべきガイドラインをまとめた。 できる限り nonatomic を指定する atomic にしてもパフォーマンスが悪化するだけでほとんどメリットがない(参考:StackOverflow - Atomic vs nonatomic properties)。 nonatomic と atomic の使い分けの指針は次のとおり: 参照型: メモリアドレスのみの書き込みなので、常にnonatomicでよい プリミティブ型: int, BOOL等ワンステップでの書き込みが可能: 常にnonatomicでよい 単一のスレッドからしかアクセスされない: 設計に気をつけつつnonatomic推奨 複数のスレッドからのアクセスがあり、long,構造体などサイズの大きい値: atomic推奨 (thx to @takasek) 複数のスレッドから同時に

    Objective-C のプロパティ属性のガイドライン - Qiita
  • ARCを使用したメモリ管理の基礎 - Qiita

    iOSアプリのメモリ管理についてまとめました! 何かあったらコメントどぞー。 6/24:コメントで間違いを指摘されたので、色々テキスト修正しました。 メモリ管理に気をつけないとどうなるの? 動作がもっさりする 使い終わったオブジェクトを解放していないパターン。 解放されないのでどんどん使用メモリが増えていき、メモリ圧迫しちゃってもっさりする。 同じ端末で動かしている他のアプリも影響を受けてしまうので気をつけましょう!! アプリが落ちる よくあるのがEXC_BAD_ACCESSのパターン。 アクセスしようとしたデータが既に解放されちゃっているというエラー。 解放するタイミングにも気をつけましょう!! 気をつけるポイント strongなプロパティは自分で解放する (誤解してました…。自動で解放されるよう) プロパティ属性を理解する 解放するタイミング メモリ不足時の挙動を理解する Blocks

    ARCを使用したメモリ管理の基礎 - Qiita
  • Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス

    「Objective-CのBlocksの循環参照とその解決策」では、Blocksのメモリ管理の難しさと、世間ではよく使われている「weakSelfパターン」があまり良くないのではないかということを書きました。 このブログでは、いろいろ考えた結果たどりついた、僕が考えるBlocksの使い方を書きたいと思います。 サンプルをgithubに載せましたので、良ければそちらも参照してください。( BlocksMemoryExample ) Blocksを安全で便利に使うために必要なこと 先に、Blocksを安全で便利に使うためには、どんなことが必要なのかというのを考えておきたいと思います。 循環参照におちいらず、使用後に解放される。 使い手が内部の実装をできるだけ意識する必要がない。 おまじない的なコードを書く必要がない。 できるだけBlocksに渡すオブジェクトの存在を保証する。 そして、Bloc

    Objective-CのBlocksの循環参照に関する僕なりのベストプラクティス
  • Main thread で実行 - Qiita

    以前は NSObject の - (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait などを利用していた。 引数が0または1しか取れない、メソッドをわざわざ作る必要がある、など不便な点が多かった。引数増やすときは NSInvocation で回避できたが、やっぱり面倒だった。 GCD を使ったほうが簡単。 同期実行したいときは dispatch_async() の代わりに dispatch_sync() を使う。 Main thread から dispatch_sync で main queue に突っ込もうとすると誰も処理できずに詰まるので注意。 どの thread から呼ばれるかわからない場合は自分がどの thread にいるかチェックする。 (もっと良

    Main thread で実行 - Qiita
  • blocksの落とし穴 - Qiita

    blocksには数多くの落とし穴があります。 しかしそれを乗り越えることができれば、非常にスマートにかける状況はそれなりに増えると思います。 ※注意:ここではARC環境での話です。一部MRCと状況が異なる場合があるかもしれません。 <blocksはObjective-cのオブジェクトをstrong参照でキャプチャする> ここでいうキャプチャとは、ポインタをコピーしている、ということです。 なんで?と思われる方も多いと思います。しかし理由ははっきりしていています。 例えば、dispatch_afterで処理を遅延することを考えてみましょう。 NSArray *sameArray = ...; int64_t delayInSeconds = 2.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSecon

    blocksの落とし穴 - Qiita
  • Objective-Cのコードを削れるだけ削る7のTips | TOKOROM BLOG

    既存記事のまとめのため新しい要素があるわけではないのですが、Appleから発表されたXcode 5が正式にリリースされる前の復習ということで。 Tipsを適用する前のコード #pragma mark - Private Category @interface Sample () @property (strong) NSNumber* i; @property (strong) NSNumber* c; @property (strong) NSNumber* f; @property (strong) NSArray* array; @property (strong) NSDictionary* dictionary; @property (strong) Sample* child; @property (strong) UIColor* color; @property (assi

  • Cocoaの日々: ObjCがサクっと書けるコーディングTips

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど 最近よく使っている省略記法を紹介する。これらを使うとなんとなく気分がいい。 クラスメソッドの . (ドット)アクセス 実はクラスメソッドも .(ドット)表記が可能になった。 [SomeClass sharedInstance] ↓ SomeClass.sharedInstance当然ながらさらにメソッドも重ねられる。 SomeClass.sharedInstance.localNameXcodeではクラスメソッドの.表記は補完が効かないのが難点。ただしそれ以降のメソッドは補完してくれる。 例えば SomeClass.share... ここまでは補完しないが、SomeClass.sharedInstance.local.. ここまで来ると補完できる。 インスタンス作成 (1)newお馴染

    Cocoaの日々: ObjCがサクっと書けるコーディングTips
  • Objective-Cにおけるinstancetype型について - Takebayashi.Asia

    先日Xcode 4.3がリリースされました。Xcode 4.3ではclangのバージョンが3.1となり、instancetypeという型をサポートするようになりました。 返り値のid型の推論 instancetypeの話の前に、id型の返り値について考えます。Cocoaでは、+ allocや- initといったメソッドは軒並みid型の値を返すようになっています。基的に、id型の値はどのようなオブジェクト参照型にも代入できることになっています。 しかし、clangは以下のようなコードに警告を発します。 NSString *myBlog = [[NSURL alloc] initWithString:@"http://takebayashi.asia/"]; + allocも- initWithStringも返り値がid型なので来ならばNSString *型の変数に代入しても文句は言われな