タグ

ブックマーク / dev.classmethod.jp (55)

  • [iOS 7] 続・XCode 5をXCode 4と共存させよう | DevelopersIO

    業務で、iOS5-6向けのアプリケーションを作ってる時、Xcode5にすると何かと怖いなーとか、Xcode新しいのはとりあえず使わなくてもいいかなーって思ってる人も多いはず。 そんな人のための、Xcode5と4の共存方法です。 App Storeからインストールした人は更新されたはず すでにXcode5の正式版がリリースされたため、App Storeでインストールした人は自動的にアップデートされたはずです。 もしそれを拒んでる人は、早くアップデートしろと通知が煩わしくなってるはずです。 とりあえず、App Storeでのアップデートは行っても構わないため、アップデートを行いましょう。 そのさい、今まで使っていたXcodeのバージョンは覚えておきます。(私はXcode4.6.3でした) アップデートしたら、Xcode5に更新されているはずです。 (以前の記事で、Xcode5 DP版を入れた人

    [iOS 7] 続・XCode 5をXCode 4と共存させよう | DevelopersIO
    raimon49
    raimon49 2014/01/06
    古いバージョンのパッケージはDev Centerから入手。
  • [iOS 7] [iBeacon] Mac を Beacon 端末にする | DevelopersIO

    2014/11/06 更新 CBPeripheralManager が Yosemite (OS X 10.10) では動かないバグがあるようです。 そのため Mac で試す場合、Mavericks 以前の OS X バージョンで実行する必要があります。 http://stackoverflow.com/questions/25492316/cbperipheralmanager-startadvertising-not-working-on-os-x-yosemite 現在既にバグレポートが報告されているようなので、 次のバージョンでFixされることを期待するしかないようです。 情報を提供くださいました ppia さん、誠にありがとうございます! 2014/11/19 更新 Yosemite (OS X 10.10) で CBPeripheralManager を動作させたい場合、 Bl

    [iOS 7] [iBeacon] Mac を Beacon 端末にする | DevelopersIO
  • ユニットテスト改善ガイド | DevelopersIO

    先日、日Javaユーザグループ(JJUG)主催のJJUG CCC 2013 Fallで、「ユニットテスト改善ガイド」というタイトルで登壇してきました。自分の経験を元に、ユニットテストをチームや組織へ導入する時に起こりえる問題とその解決のヒントに関するセッションです。エントリーではそのセッションの内容を再構成して公開します。 はじめに 近年のシステム開発では、ユニットテストや継続的インテグレーション(以下、CI)の導入は必要不可欠と考えられています。とはいえ、どんな組織(チーム)でも簡単に導入できているわけではありません。特に、大きな組織や古くからの慣習を残している組織では導入したくとも中々進まないと感じているところが多いのではないでしょうか?。 私は、これまでに多くの開発現場でユニットテストやCIの導入について推進してきました。成功したケースもあれば失敗したケースもあります。そして、失

    ユニットテスト改善ガイド | DevelopersIO
    raimon49
    raimon49 2013/11/20
    ユーティリティクラスから始める、2人以上で始めて引き込む、レガシーコードにはチャンレジしても良いが立ち向かわない。とても良い内容。
  • [iOSアプリ開発] いまさら聞けないモダンな書き方 | DevelopersIO

    Xcode 4.4 から Objective-C が書きやすくなりました、という今更のいまさらな話ですが、ネット上に転がっている少し前のサンプルソースなどは古い書き方のものもあるようなので、今回はよく使う NSArray と NSDictionary と NSNumber の書き方についてだけ備忘録として残しておこうと思います。 NSArray インスタンスの生成 // 古い書き方 NSArray *oldArr = [NSArray arrayWithObjects:@"value1", @"value2", @"value3", nil]; NSMutableArray *oldMutableArr = [NSMutableArray arrayWithObjects:@"value4", @"value5", @"value6", nil]; // 新しい書き方 NSArray *n

    raimon49
    raimon49 2013/09/26
    @[ ]記法で配列を作ってからmutableCopyメッセージでNSMutableArrayを初期化させるイディオム。
  • [iOS 7] UIScrollView キーボードの扱い方が変わりました! | DevelopersIO

    UIScrollViewで新しく追加されたkeyboardDismissModeプロパティ iOS7からUIScrollViewにkeyboardDismissModeなるプロパティが追加されました。こいつはUIScrollViewをドラッグしたときにキーボードを閉じる方法を設定するプロパティです。この記事では従来のキーボードの閉じ方を踏まえてつつ、keyboardDismissModeの解説をしたいと思います。 今までのキーボードの閉じ方 iOS6まではキーボードを閉じるには自前で実装する必要がありました。代表的なやり方としては以下の方法があります。 Did End On Exitイベントでキーボードを閉じる @implementation MyViewController ・・・ - (void)viewDidLoad { [super viewDidLoad]; UITextFiel

    [iOS 7] UIScrollView キーボードの扱い方が変わりました! | DevelopersIO
  • ユニットテストにまつわる10の勘違い | DevelopersIO

    渡辺です。さる方面からテスト系のエントリーがまだか…と催促されたので、ユニットテストについて少し考えてみたいと思います。 最近、TwitterのTLをチェックしていると、JUnitを利用しているにも関わらず違和感のあるTweetや、原因をJUnitにして来解決すべき問題から目をそらしているようなTweetを多く見かけます。そこで、JUnitをによるユニットテストに関するありがちな勘違いをまとめてみました。 なお、JUnitの部分は、RSpecでもNUnitでも適当に置き換えて読んでも構いません。 1.JUnitを使うことが目的という勘違い JUnitを利用すること自体を目的にしたところで何も得る事はありません。 ありがちな話ですが、「納品物としてJUnitのテストコード(または実行結果)を求められている」ことが理由でJUnitを利用しているならば、それは足かせでしかない可能性があります。

    ユニットテストにまつわる10の勘違い | DevelopersIO
    raimon49
    raimon49 2013/09/17
    良いこと書いてある。
  • Android 開発者必須!SupportPackage で SDK バージョン間の実装の違いを解消しよう | DevelopersIO

    Android 開発者必須!SupportPackage で SDK バージョン間の実装の違いを解消しよう SupportPackage とは? SupportPackage は Android 4.0 から導入された、 SDK バージョン (APIレベル) 間の実装の違いを解消するために提供されたサポートライブラリです。 Android 4.0 で多くの機能が追加され、また実装方法もより効率的に、よりシンプルになりました。Android 4.0 用のアプリを開発するときは問題ないのですが、それ以前の SDK バージョンに対応しようとする場合、クラスが参照できなかったり、改善される前の方法でしか実装できなかったりします。 分かりやすい例として Fragment が挙げられます。 Fragment は Activity 内で UI や振る舞いを分割するときに便利な、 Android 3.0

    Android 開発者必須!SupportPackage で SDK バージョン間の実装の違いを解消しよう | DevelopersIO
    raimon49
    raimon49 2013/05/09
    android-support-v4.jar 参照方法
  • 静的型付けをもつJavaScriptへのトランスコンパイル言語を味見してみた | DevelopersIO

    JavaScriptを利用したWebアプリケーション開発 JavaScriptはWebアプリケーション開発において非常に重要なポジションを占める言語です。クライアントサイドにおいては、XMLHttpRequestを利用した非同期通信によるステートフルなクライアントUI作成手法がAjaxという名前で広まったことが、JavaScriptの存在を多くの開発者に見直されるきっかけとなり、以前に増して広く利用されるようになりました。サーバーサイドにおいてもnode.jsの登場により一躍注目を浴びる存在となっています。 しかし、JavaScriptは開発効率や保守性の点で問題を抱えていることがよく指摘されています。その理由は、カプセル化の難しさや、名前空間がないことによるグローバル変数の汚染、動的な型付けによる型のあいまいさなど様々です。それらは型の問題を除いて、ほとんどがJavaScriptの無名関

    静的型付けをもつJavaScriptへのトランスコンパイル言語を味見してみた | DevelopersIO
    raimon49
    raimon49 2013/03/26
    ActionScriptやJavaとの類似点も。
  • HTML5 × CSS3 × jQueryを真面目に勉強 – #12 Pinterest風グリッドレイアウトを作ってみた | DevelopersIO

    そんな訳で、写真共有SNSの一つであるPinterest(ぴんたれすと)。従来のグリッド式レイアウトのように高さが均一のグリッドが整然と並べられているのと違い、異なる高さのグリッドが画面いっぱいに敷き詰められているレイアウトが特徴的でオサレです。(※こういったレイアウトはピンボード風と呼べば良いのでしょうか…?) Pinterest Pinterest とはピンボード風の写真共有のソーシャル・ネットワーキング・サービス。特に女性に人気がある。ウェブサイトとアプリはテーマに基づいて写真のコレクションを作ることが出来る。サイトのミッションステートメントは「面白いと感じるものを通じて世界全員をつなぐ」。アメリカ Palo Alto にある Cold Brew Labs によって運営されている。 Wikipediaより引用(http://ja.wikipedia.org/wiki/Pinteres

    raimon49
    raimon49 2013/01/16
    図を描いて説明できるの凄い。
  • iOS GoogleMapsの新しい拡大縮小ジェスチャをGestureRecognizer化する | DevelopersIO

    Google Mapsアプリの拡大・縮小ジェスチャ 先日リリースされたiOSの新しいGoogle Mapsに、マップの拡大・縮小操作のジェスチャが新しく追加されました。ダブルタップ後にそのまま指を離さずに上下にパン(ドラッグ)すると拡大・縮小操作が行えるというもので、実際に使ってみると片手でも操作しやすくとてもいい感じでした。そこで、今回はこのジェスチャを簡単に使えるGestureRecognizerとして実装してみました。 開発環境は以下の通りです。 OSX Mountain Lion Xcode 4.5.2 iOS SDK 6.0 Apple LLVM Compiler 4.1 iPhone5 (iOS 6.0.1) ソースコードはGitHubで公開しています。 ジェスチャのルールを考える 実装に入る前に、まずはジェスチャのルールについて考えます。 まずは、ジェスチャの開始と終了につい

    raimon49
    raimon49 2012/12/26
    独自UIGestureRecognizerを定義
  • iOS6 Mobile Safariでスクロールするとタイマーが止まるバグ? | DevelopersIO

    setTimer, setIntervalあたりの動きが怪しい 利用者の多さと大きな期待からiOS6への指摘が多数報告されています。ということで、今回も1つ共有です。setTimerやsetIntervalが動いている最中に画面をスクロールするとタイマーが止まります。これも影響大きいかなぁ。。。 怪しい動作の確認 まずは以下のサイトをiOS6 Mobile Safariで開いて下さい。ボタンを押すとタイマーで画面の色が変わり続けます。次に画面にタッチしてスクロールしてみてください。画面の色が変わらなくなりますよね。スクロールした後に手を離すと、また色が変わり始めます。タイマー処理が止まっているっぽいです。。。 動作チェック >> iOS6 setTimer and scrolling bug ?? TRY IT on Mobile Safari サンプルソース サンプルソースは以下となりま

  • JsDoc Toolkitを使ってJavaScriptのAPI仕様書を作る(環境構築から出力まで) | DevelopersIO

    そんな訳で、JsDocについて少し調べたので、備忘録としてここに残しておくとします。 はじめに - JsDocについて Java開発者の方々ならば、JavaDocというのは馴染み深いを通り越して、もはや聞き飽きているかもしれません。同様にFlashのActionScriptにはASDoc、PHPにはPHPDocなるものがあります。ちょっとした規模のアプリケーションを開発すると、後々の保守を考慮してこういったAPI仕様書を作成し、後から「あれ、ここの処理って何の為にあるんだっけ?」となっても、ソースコードを直接追いかけることなく、概要を大まかに確認できるようにしておくのが慣例かと思います。※あくまで慣例です。実際にやっているかどうかは・・・(ry JsDocは、名前のとおりJavaScriptAPI仕様書を指し、JavaDocと同様にHTMLドキュメント形式で出力されたもので、Webブラウ

    raimon49
    raimon49 2012/10/12
    WindowsのJDKから起動して生成する例
  • 【番外編】Androidの爆速エミュレータ環境を構築する | DevelopersIO

    ※追記しました. OSXの方々は注意点もありますので、追記も併せてご覧ください 2012.10.17 Android爆速エミュレータ環境の作り方 Android開発者界隈のTwitter TLで、「Androidのエミュレータが低速で使い物にならないとか言って許されるのは小学生までだよねー。きゃははー」的な会話が繰り広げられていたので、これは知らないのはマズイのでは、という危機感から、一念発起し、爆速Androidエミュレータ環境の構築を試みました Androidのエミュレータが低速で使い物にならないというのは、すでに過去の話だそうです。真の情報強者の方々は、すでに爆速エミュレータでの開発を行っているようです。中には、実機よりも早いので、実機代わりに使ってるという方もおられるようです もうAndroidのエミュレータが遅いなんて言わせない!iPhoneのエミュレータに匹敵する(?)速度を手

    【番外編】Androidの爆速エミュレータ環境を構築する | DevelopersIO
    raimon49
    raimon49 2012/10/11
    インテルが自社アーキテクチャ向けのエミュレータを配布してるのか。なるほどなぁ。
  • iOS6のSafariでサポートされるHTML5の機能 | DevelopersIO

    以前、HTML5でカメラやGPSなどスマートフォンならではの機能がどこまで使えるのか調べました。 最近、iPhone5を買ったので今度はiOS6のSafariでサポートされたHTML5の機能を試して見ようと思います。 試したのは以下の5つです。iPhoneで確認できるようにサンプルを作ったので試してみて下さい。 ファイルアクセス(File API)とカメラ(HTML Media Capture) 音声処理・合成(Web Audio API) アニメーション(Animation Timing API) CSS Filter Effects Remote Debugger ■ファイルアクセス(File API)とカメラ(HTML Media Capture) ファイルアクセスとカメラ連携のサンプルです。iOS6ではFile APIの書き方でカメラも使えました。 [ファイルを選択]ボタンを押すと

    raimon49
    raimon49 2012/10/01
    input type="file"にmultiple属性
  • iOS6 Mobile SafariがAjax POSTでキャッシュする問題を回避する方法 | DevelopersIO

    iOS6出た! iOS6が出来ましたね。社内ではiPhone5を入手した社員がLTEの速度に驚いていました。私はまだiPhone4Sですが、iOS6にして新しい機能を楽しんでいるところです。さて、iOS6にしてSafariの仕様が変わって困ったと言った投稿が海外のフォーラムで挙っています。それも、基的なPOST通信についてです。これは困ったということで、動作を確認して対策方法についてシェアしたいと思います。 どんな時にPOSTをキャッシュする? まずはどんな状況か確認してみたいと思います。 Cache-ControlもExpiresも無い場合 : iOS6 Mobile SafariはPOSTをキャッシュする Cache-Control max-age=0指定 と Expires指定 : iOS6 Mobile SafariはPOSTをキャッシュする Cache-Control: no-

    raimon49
    raimon49 2012/09/24
    >レスポンスヘッダにCache-Control:no-cacheを指定することで回避できる