タグ

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

  • [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

    l-liroki
    l-liroki 2013/05/15
  • node.jsのいろいろなモジュール15 – bowerでクライアントのライブラリを管理 | DevelopersIO

    ライブラリ管理がめんどい クライアント側で使用するサードパーティ製ライブラリ管理を面倒に感じたことはありませんか? 毎回公式サイトから持ってきてしてディレクトリに置いたり、バージョンアップしたらまた公式サイトから持ってきて・・・ そんな管理が煩わしいとおもっている人に、今回はクライアント側パッケージ管理ツールを紹介します。 bowerとは? bowerとは、Twitterが公開しているクライアントサイド用パッケージマネージャです。 サーバサイドではnode.jsのnpmでパッケージ管理をしますが、それのクライアントサイド版ですね。 jqueryやbackbone.jsなどのライブラリを簡単にインストールでき、依存関係も管理できます。 bowerはnode.jsのモジュールとして提供されており、npmをつかってインストールします。 ではbowerをインストールし、比較的よく使うコマンドをいく

    node.jsのいろいろなモジュール15 – bowerでクライアントのライブラリを管理 | DevelopersIO
    l-liroki
    l-liroki 2013/05/15
  • [Grunt]Yeomanで開発ワークフローを楽にしよう[bower] | DevelopersIO

    ※2013/5/14 Yoemanってスペルミスしまくってたのを修正 Yeoman(ヨーマン)とは LESS、Sass、compass、Coffeescript、TypeScript等々、クライアントサイドのWebアプリケーション技術は多様化しています。 Coffee ScriptやLESS等の拡張言語はコンパイルする必要がありますし、jsファイルはconcat/最適化/ミニファイすることも多いです。 ソースを修正するたびにいちいち手動でコンパイルしたり最適化するのは、来注力すべき事象ではありません。 Yeomanは開発者がアプリケーション開発に注力できるよう、アプリのひな形生成からテストやコンパイル、ファイル最適化といったワークフローを提供してくれます。 Yeomanについてはここでも少しふれていますが、開発を楽に楽しくするためのツールが満載のようですね。 まずはYoemonについての

    l-liroki
    l-liroki 2013/05/15
  • 【前編】Backbone.jsでつくるMVPなUIパターン【スクロールスパイ】 | DevelopersIO

    前回の更新からだいぶ間が開いてしまいましたがこのシリーズはまだ終わりません!今回はTwitter BootstrapにjQuery Pluginとして実装されているScrollSpyを真似して作ってみたいと思います。 ちょっと解説が長くなってしまったので前後編に分けてご紹介します。 後半はこちら >> Backbone.jsでつくるMVPなUIパターン【スクロールスパイ】後編 デザイン 4つの文章に対しそれぞれナビゲーションが存在し、文章のエリアをスクロールして閲覧している文章に対応するナビゲーションがアクティブ表示になるというものです。 このUIhtmlは以下のようにコーディングしました <div id="ui-scroll-spy"> <div class="scroll-spy-nav navbar"> <div class="navbar-inner"> <div class="

    l-liroki
    l-liroki 2013/04/02
  • Gitを使った分散開発管理16 – p4mergeでマージを行う | DevelopersIO

    Gitでのマージ作業 Gitを使用していて競合が発生した場合、それを解決して正しい状態にする必要があります。 私は以前、競合が発生したファイルに<<<<<<<HEADとかのよくわからない文字列が入って、どうやって修正すればいいか悩んでいました。 こういった競合を解消するためのツールはいくつもありますが、今回はMacで「p4merge」というツールを使用して Gitの競合を解消する方法について紹介します。 環境 今回使用した動作環境は以下のとおりです。 OS : MacOS X 10.7.5 Git : 1.8.2 Gitは使える状態にしておいてください。 p4mergeをセットアップ 1.p4mergeをダウンロード まずはここからp4mergeをダウンロードして、p4merge.appを/Applicationsにインストールします。 2.gitconfigの設定 ~/.gitconfi

    l-liroki
    l-liroki 2013/04/02
  • [iOS] ナビゲーションコントローラのトランジションを手軽に差し替える方法 | DevelopersIO

    UINavigationControllerのトランジションエフェクトを簡単に変えたい 業務でiOSアプリ開発をやっていると、時々画面のトランジションエフェクトを全体的にデフォルト以外のものに変えてほしいという要望を頂く事があります。トランジションエフェクトの要望が局所的な場合や画面数があまり多くない場合は、個別に実装してしまっても問題ありません。しかし、画面数がそこそこあるアプリだと、UINavigationControllerで画面遷移を管理しつつ、デフォルトのPushトランジションエフェクトを置き換えてしまった方が楽です。そこで、今回はUINavigationControllerのトランジションエフェクトをデフォルトのPush以外に簡単に置き換える方法をご紹介します。 開発環境 今回の開発環境は下記の通りです。 OSX 10.8 Xcode 4.6 iOS SDK 6.1 UINav

    l-liroki
    l-liroki 2013/03/30
  • Sublime Text 2でコンパイル編 | クラスメソッド開発ブログ

    はじめに このシリーズ「すぐに使えるSCSS入門シリーズ」ではScoutを使ってコンパイルしてきました。 最近Sublime Text 2のライセンスも買って、格的に使い始めました。 そこで、今回はSublime Text 2(Windows, Mac)を使ってコンパイルする方法を調べたので、まとめて紹介したいと思います。 この記事ではデザイナーに苦手な人が多いかもしれない黒い画面「コマンドプロンプトとターミナル」を利用します。 難しいんじゃないかと思うかもしれませんが、是非挑戦してみてください。そのうち大したことしてないじゃんと思えるようになります。 主な流れ 主な流れはこんな感じで、最初に黒い画面でコマンドを入力していきます。 それが終わればSublime Text 2の設定を行い、コンパイルを試します。 Rybyのインストール インストールの確認とコンソール Sassのインストール

  • Sublime Text 2の基本とカスタマイズ【Vim風】

    2012年12月4日:Vim化について指摘と参考になる情報をいただいたので追記しました。 こんにちは、僕はVimユーザーです(ちなみにVimを完璧に使いこなしているわけではありません)。 今更ながら「Sublime Text 2」というナウでヤングなエディタも使いこなせるようになりたいと思い、Sublime Textの基設定からプラグインやスニペットの作り方まで調べた内容をこの記事にまとめることにしました。 細かい情報までまとめることはできなかったので、より詳しい内容を紹介してくださっているブログやサイトへのリンクを設けています。 この情報以外にもSublime Text 2をVimに近づけるプラグインやカスタマイズ方法があればコメントいただけるとうれしいです。 また、間違いがあればコメントいただければすぐに直します。よろしくお願いします! Sublime Text 2は有料($59)の

  • 楽しく作れる!スマホアプリ/サイトのワイヤーフレーム・モックアップ作成支援ツール7選 | DevelopersIO

    ワイヤーフレームを楽しく作ろう! 魅力的なユーザーエクスペリエンスをユーザーに届けるために、ワイヤーフレームはとても重要です。 何より自分自身が楽しんで作らないと、良いアイデアは生まれないものですよね。 ということで「楽しく作れる!」という観点から、おすすめのスマホアプリ/サイトのワイヤーフレームの作成を支援するツールをまとめてみました!もちろんすべて無料で始められます! では早速どうぞ〜! Fluid UI http://www.fluidui.com/ プレビュー機能で画面遷移も作れる UIパーツが物にかなり近い形で表現されています(むしろそのまま?)。UIパーツはWireframe、iPhoneiPadAndroidAndroid 4.0、Android Tablet、Windows Phoneの中から自由に選べます。かなり豊富です。またオリジナル画像をアップロードして使うこ

    楽しく作れる!スマホアプリ/サイトのワイヤーフレーム・モックアップ作成支援ツール7選 | DevelopersIO
    l-liroki
    l-liroki 2012/11/06
    ちょうど探してたとこ
  • iOS6 UICollectionViewを使ってみる | DevelopersIO

    新しいUIコンポーネント iOS6では様々な機能が追加されましたが、今回新たにUICollectionViewというUIコンポーネントが追加されました。これは配列などに格納された複数のデータをUI上で要素として一覧したい場合に利用するもので、その点ではUITableViewと似たようなものとなっています。実際、このコンポーネントを利用する際に使用するメソッドはUITableViewと非常によく似ているので、とてもとっつきやすくなっています。 UICollectionViewとUITableViewの最大の違いは、レイアウト処理が専用のコンポーネントに委譲されている点です。そのため、UICollectionViewでは各要素(セル)のレイアウトを自由にカスタマイズできます。私が最初UICollectionViewを見たときは、要素がタイル状に並べられているUIを見て、そういうレイアウトを実現

  • 【営業さん必見!】iOS/Androidアプリ開発で事前に合意しておくべき7つのポイント | DevelopersIO

    ※1.X系は開発対象になることがほとんどないため、表から除外しています。 3.ネットワーク オフライン、3G、wi-fiLTEとスマートフォンではネットワークの種類がいくつかあります。何もここまでと思う方もいらっしゃると思いますが、3Gとwi-fiで動きが異なるということも実際あったので、開発対象のアプリがどのネットワークを対象としているのかは明確にしておく必要があります。 4.テスト範囲 端末とOSのバージョンを組み合わせただけで相当数のパターンができます。全ての端末、全てのOSのバージョン、全てのネットワークの組み合わせでのテストは現実的には不可能ですので、開発でのテストの範囲を決めておきましょう。またテスト範囲には、弊社諏訪が書いた記事「Androidの結合テスト」で書いていましたが、どこまでテストを深くやるのかも決めておくべきです。 5.リリース 開発までで終わりなのか?ストアの

    l-liroki
    l-liroki 2012/10/18
  • iOS6 UICollectionViewのカスタムレイアウトを作成してみる | DevelopersIO

    前回、UICollectionViewを構成するクラス群の役割と、その簡単な利用方法について見ていきました。今回は、前回に続いてカスタムレイアウトコンポーネントを作成したいと思います。 UICollectionViewLayoutのサブクラスを作成 カスタムレイアウトコンポーネントを作成する際には、UICollectionViewLayoutクラスを継承したレイアウトクラスを作成します。UICollectionViewLayoutのサブクラスでは、以下のメソッドをオーバーライドして実装する必要があります。 collectionViewContentSize UICollectionView内の要素を配置するコンテンツ部のサイズを返すメソッドです。UIScrollViewのcontentSizeプロパティと同じく、スクロール領域の範囲をコントロールします。 layoutAttributesF

  • 超簡単!BugSenseでスマホアプリ/サイトのクラッシュ統計をとろう | DevelopersIO

    BugSenseとは BugSense はスマホアプリ/サイトのクラッシュ時にレポートを送信するWebサービスです。 Android, iOS, WindowsPhone, HTML5 に対応しています。 以下の3つのポイントが特長になっています。 1行で実装完了! レポートを送信するために必要なことはライブラリを追加し、コードを1行追加するだけなので、ソースコードを汚さずにシンプルに実装することができます。 リアルタイムにレポート! GooglePlay のクラッシュレポートなどはまとめて報告されるためタイムラグがありますが、BugSenseはクラッシュしたその時点でレポートがリアルタイムに送信されるので、バグを早期発見することができます。 統計データが分かりやすい! クラッシュレポートの統計データは、グラフィカルに表示されるので、いつどのくらいクラッシュしたか一目で分かるようになってい

    超簡単!BugSenseでスマホアプリ/サイトのクラッシュ統計をとろう | DevelopersIO
    l-liroki
    l-liroki 2012/10/18
    バグレポート集計
  • 【番外編】Androidの爆速エミュレータ環境を構築する | DevelopersIO

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

    【番外編】Androidの爆速エミュレータ環境を構築する | DevelopersIO
  • 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の書き方でカメラも使えました。 [ファイルを選択]ボタンを押すと

    l-liroki
    l-liroki 2012/10/05
  • iOSアプリ開発で例外の発生した場所を特定する | DevelopersIO

    iOSアプリを開発していて、例外が発生してアプリがクラッシュしてしまうことがしばしばあります。 Xcodeでは、クラッシュ時に得られる情報が少ないので、原因究明に時間がかかってしまいます。 そんなときは、「NSSetUncaughtExceptionHandler」を使用すると便利です。 まず、試しに、よくある例外をわざと発生させてみます。 - (void)viewDidLoad { [super viewDidLoad]; // ここで、わざと例外を発生させてみます。 [[NSArray array] objectAtIndex:0]; } 実行すると以下のようになります。 「UIApplicationMain」で止まってしまって、状況がよくわかりません。 「NSRangeException」が発生したことくらいはわかりますが、もう少し情報が欲しいところです。 そこで、「NSSetUnc

  • HTML5 × CSS3 × jQueryを真面目に勉強してみる – #4 LESS | DevelopersIO

    そんな訳で、拡張メタ言語の中でも特にハードルの低いだろうLESSに触れてみることにしました。 拡張メタ言語 - LESS メタと称されるだけあって、LESSはHTMLCSSJavaScriptといった類の言語とは毛色が違います。そういった言語によって記述されたソースコードと同じ意味(機能)を持ちながら、より簡略的に表現できるようにしたための言語というわけです。 念のため分かりやすく補足しておきますと、メタとは比喩とか暗喩という意味であって、「アンタなんか牡丹じゃなくて豚よッ!」というセリフの豚という表現が正にメタに当たります。 ※豚というのは例えであって、当に動物の豚だといっているわけではありません。 他にもこのような拡張メタ言語には、CSSに対してSCSS(Sass)、HTMLに対してHamlといったものがあります。JavaScriptに対してCoffeeScriptというのが比較

    l-liroki
    l-liroki 2012/10/03
  • 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-

  • JavaScriptのMVCフレームワークと仲間たち | Classmethod.dev()

    JavaScriptのMVCフレームワークと仲間たち JavaScriptでイイ感じに開発をしたいという欲求が高まってきたため、自分でフレームワークを作らずに世界の賢者たちから学びたいと思います。今回は、JavaScriptでMVCフレームワーク等を実現しているフレームワークや周辺のライブラリ、さらにはツールやユーティリティまで幅広くご紹介します。 (2012/1/17 updated) Backbone.js Spine.js JavaScriptMVC AngularJS SproutCore Ember.js YUI App Framework Broke.js Fidel.js Sammy.js KnockoutJS eyeballs.js The M Project Knockback Batman.js Shipyard.js Agility.js ベース jQuery Doj

    l-liroki
    l-liroki 2012/01/09