サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
衆院選
watson1978.github.io
SDK / NDK をインストール あらかじめ JDK 7 か JDK 8 をインストールしておいてください。 RubyMotion をインストールした後、motion android-setup とターミナルでコマンドを実行し必要となる SDK や NDK をインストールします。 1 $ motion android-setup 途中で、以下のようにライセンスの同意を求められる場合があるので、y で同意し進みます。 1 2 November 20, 2015 Do you accept the license 'android-sdk-license-c81a61d9' [y/n]: 最低限必要となる SDK や NDK がインストールされると、Android SDK Manager のウィンドウが表示されます。 motion android-setup は、SDK や NDK をデフォ
http://rubymotion-tokyo.doorkeeper.jp/events/5652 に参加しながら、もくもくとブログを書いてます。 Xcode 5 Developer Preview を使って RubyMotion アプリをビルドする方法が分からないという方がおりましたので、今回はその方法を書いてみたいと思います。 xcode-select を設定する xcode-select --print-path を実行すると、デフォルトで使用する Xcode のパスが表示されます。 1 2 % xcode-select --print-path /Applications/Xcode.app/Contents/Developer xcode-select --switch を使用し、これを Xcode 5 のパスへ変更します。 1 % sudo xcode-select --swi
RubyMotion の新しいバージョンがリリースされる前に、先行して https://github.com/HipByte/RubyMotion のリポジトリにパッチが push されている場合があります。 次のようにコマンドを実行すると、そのパッチを簡単に試すことができます。 最新の RubyMotion (の一部) を試す 1 2 3 4 5 % git cone https://github.com/HipByte/RubyMotion.git % cd RubyMotion/ % rake install mv /Library/RubyMotion/lib /Library/RubyMotion/lib.backup ln /Users/watson/tmp/RubyMotion/lib /Library/RubyMotion/lib /Library/RubyMotion/l
Xcode で起動時の言語指定方法 がこちらに書かれているのですが、RubyMotion では rake を実行する際に環境変数 args を利用して以下のように指定します。 1 2 3 4 5 6 7 8 9 % rake args="-AppleLanguages '(en)'" Build ./build/iPhoneSimulator-6.1-Development Simulate ./build/iPhoneSimulator-6.1-Development/Locale.app 2013-07-07 22:47:22.293 Locale[13237:c07] foo % rake args="-AppleLanguages '(ja)'" Build ./build/iPhoneSimulator-6.1-Development Simulate ./build/iPhon
RubyMotion Kaigi で質問があったので、RubyMotion を使ったスタティックライブラリの作り方と、Xcode プロジェクトへの組み込み方について書いてみました。 RubyMotion プロジェクトを作成する まずは、RubyMotion のプロジェクトを作成してみます。 1 2 3 4 5 6 7 % motion create TestStatic Create TestStatic Create TestStatic/.gitignore Create TestStatic/app/app_delegate.rb Create TestStatic/Rakefile Create TestStatic/resources/Default-568h@2x.png Create TestStatic/spec/main_spec.rb アプリケーションが起動する際にイン
Ruby Kaigi の前日、5月29日に RubyMotion Kaigi 2013 で発表をしてきました。 誰か:「英語が苦手で良く勤まっていますね?」 私:「何を言っているのか わからねーと思うが. おれもどうしてこーなったかわからなかった・・・。」 よく分からないけど、気づいたら RubyMotion を開発していたので、発表をすることになりました。 話した内容はひととおりスライドに書いてあるので、補足的に Ruby と Objective-C のコードを組み合わせて実行しているところを説明したいと思います。 Objective-C のコードはベンダーライブラリとして組み込んでいるのですが、Rakefile に 1 app.vendor_project('vendor', :static) とシンプルに設定しているだけです。あとは vendor ディレクトリに Objective-
RubyMotion Conference に参加するため @satococoa さんとベルギーへ行ってきました。私の残念な英語力で理解できた範囲でとりとめもなく書いています。 1 日目 A Brave New World: Learning iOS for the Ruby Refugee : Nick Quaranto Basecamp を作る際に、アプリの設定周りは motion-settings-bundle、UI のレイアウトは motion-layouts と gem を作ったんだという話でした。 Behaviour Driven Motion using Calabash : Karl Krukow Karl は Calabash というテストフレームワークをメンテナンスしているんだって。 https://github.com/calabash/calabash-androi
昨日は「第2回 RubyMotion もくもく会」に参加してきました。参加された皆様お疲れ様でした。 今回はそのときに遭遇した現象について書きます。 「RubyMotion をアップデートした後で、シミュレータが起動しなくなりました」と質問があったので見せていただいたら、rake コマンドでシミュレータを起動しようとすると、以下のようなログが表示されたきり、その後アプリが動き出すこともないしシミュレータが前面に表示されることもありません。 $ rake Build ./build/iPhoneSimulator-6.0-Development Compile ./app/app_delegate.rb Compile ./app/hello_view.rb Compile ./app/hello_view_controller.rb Create ./build/iPhoneSimulat
以前、RubyMotion アプリを Jenkins でテスト実行してみよう や Jenkins に TAP Plugin というものを導入しました で RubyMotion アプリを Jenkins を使ってテストする方法について書きました。 今回はプラグインを作ってみたよってお話です。 RubyMotion に日々変更を加えており、既存のライブラリに影響がないか確認するために Jenkins にいろいろメジャーなものを登録してテストしています。 さすがにライブラリの数が多くなってきて、どうにかもう少し簡単にそれらを Jenkins に登録できないかなぁと思っていたところ、jenkins-rbenv-plugin というプラグインを作り始めた を読んで、結構簡単にプラグインを作れるのかなと錯覚して作り始めました。 https://github.com/Watson1978/jenkins
Amazon で手頃な Mac mini を購入して、Jenkins で日々 RubyMotion をテストしています。 テスト実行結果の出力形式として Test Anything Protocol (TAP) というものがあります。 RubyMotion では Spec を実行する際に output という環境変数で出力形式を TAP にすることができます(他にも spec_dox, fast, test_unit, knock, rubymine を指定できます)。 1 $ rake spec output=tap Jenkins では TAP Plugin というプラグインを導入すると、この TAP 形式に対応することができます。これを導入するとテスト数の増減(Faild が増えたとか)がグラフ表示されておしゃれな感じです。 TAP Plugin の導入 Jenkins のプラグイン
いやー、Pixate は素晴らしいですね。CSS でデザインできることがこんなに楽だったのかと改めて痛感しております。 ただ使っているうちに CSS を変更するたびに rake を実行し rebuild してデザインを確認するのが面倒くさい、もっと楽にならんのかと欲がでてきてしまいました。 最初は https://gist.github.com/4573005 で、 HTTP サーバに CSS ファイルを置いて更新用のボタンなど押す HTTP サーバ から CSS をダウンロードしてデザインを更新 というフローでやっていたのですが、サーバが決め打ちで柔軟性を持たせようとすると iOS アプリ側でサーバのアドレスを変更できるようにしないといけなくて面倒、さらに更新用のボタンを押すことすら面倒かもと、面倒なことが多すぎ!! ということで、RubyMotion もくもく会で motion-pix
先日、Pixate のライセンスを購入してみました。kickstarter でデモ動画がアップされたときには、「これだ!」とか意味不明に感動した覚えがあります。 Pixate からユーザ名やライセンスキーがメールで送られてきたのですが、これをプロジェクトを作成するたびに記述するのが面倒、というか GitHub にアップロードしたら悲惨なことになりそうなので、どうにか設定部分を分離したいなと。 自前で、yaml ファイルなどに設定情報を分離して、それを読み込むのもプロジェクトを作るたびごとだと面倒ですね。 ということで、pit というものを使ってみました。 1 $ gem install pit とターミナルでコマンドを実行して pit をインストールします。 使い方は アカウント情報を管理するコマンド pit を見ていただければ良いかと思います。 RubyMotion の Rakefile
この記事は RubyMotion Advent Calendar 2012 の 20 日目の記事です。 どのような記事を書こうかずいぶん悩んでいたのですが、第一回 RubyMotion 勉強会 の資料からクラスの部分を抜き出して手直ししようと言う手抜きぶりです。 RubyMotion はすべて Objective-C のクラス CRuby ではルートクラスとして Object というクラスが存在します(Ruby 1.9 からだと BasicObject というのもありますが)。これに対して Objective-C では NSObject というクラスがルートクラスとして存在しています。似たようなクラスがお互いにルートクラスに存在していますね。 RubyMotion では NSObject を Ruby の Object として利用し、ほかのルビーのクラスを構築しています。RubyMotio
この記事は RubyMotion Advent Calendar 2012 の 15 日目の記事です。 今回はRubyMotion でビルドする際に CPU アーキテクチャを指定する方法について書きます。 iOS SDK がサポートする CPU アーキテクチャ iOS SDK がサポートする CPU アーキテクチャは以下の表のようになっています。 iOS SDK バージョンサポート CPU アーキテクチャ iOS 4.3armv6, armv7 iOS 5.0armv7 iOS 5.1armv7 iOS 6.0armv7, armv7s RubyMotion では iOS SDK がサポートしている CPU アーキテクチャにあわせてビルドが行われます。ビルド対象を iOS 6.0 にすると armv7 と armv7s を対象にビルドが行われます。 たいていは問題がないのですが、サードパー
この記事は RubyMotion Advent Calendar 2012 の 10 日目の記事です。 つい最近ようやく RubyMotion API Reference が公開されましたが、みなさん見ていただけたでしょうか?RubyMotion のバグを取っていて、「このメソッド初めて見るんだけど何もの?」「ドキュメントが必要だよねぇ」みたいなやりとりをしながら、一生懸命リファレンスを作りました。 今回は autorelease_pool の使い方について書きます。 メモリサイクル iOS では、ボタンをタップなどするとイベントが発生します。イベントの開始時に自動的にメモリプールを生成し、イベント終了時にプールをリリースします。このときメモリプールに登録されている不要になったオブジェクトが一緒にリリースされます。 RubyMotion で作られたアプリも、これに従って不要になったオブジェ
この記事は RubyMotion Advent Calendar 2012 の 9 日目の記事です。 タイトルそのままなのですが、短いメソッドなどを探すのって大変ですよね。デバッグのために仕込んだ p メソッドを取り外そうと検索すると、いろいろなものに紛れ込んでしまいますよね。 grep で検索すると・・・ grep で検索するといろいろなノイズに紛れ込んでしまいます。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ grep "p" -r **/*.rb app/app_delegate.rb:1:class AppDelegate app/app_delegate.rb:2: def application(application, didFinishLaunchingWithOptions:launchOptions) app/controll
この記事は RubyMotion Advent Calendar 2012 の 7 日目の記事です。 最近になってようやく Jenkins を使い始めてみたので、RubyMotion アプリを Jenkins でテスト実行する方法について調べてみました。 Jenkins をインストール Homebrew を利用してインストールしました。
この記事は RubyMotion Advent Calendar 2012 の 4 日目の記事です。 以前「RubyMotion もくもく会」で HTTP 通信のテストはどうすれば良いのだろうかという話題でモックを用意するのですかねと話が収束したのですが、面倒だし極力アプリに手を加えたくないなぁと一人もやもやしておりました。 Proxy サーバを用意すれば比較的簡単にテストできるんじゃないかと思い、ブログに書いてみました。 きっかけは 何を検索していてたどり着いたのかは忘れましたが、http://ja.favstar.fm/users/Psychs/status/3507370903 というツイートを見かけ、 さすが @Psychs 先生。神!と思った次第です。iOS シミュレータなど Cocoa API を使ったアプリの HTTP 通信は簡単に Proxy を経由するように設定できるわけ
この記事は RubyMotion Advent Calendar 2012 の 3 日目の記事です。 DTrace は Sun Microsystems が開発した実行中のアプリの情報を取得する仕組みです。DTrace を使用するとアプリケーションを一切変更することなく情報取得を可能にします。 Xcode に付属している Instruments が様々な情報を表示できるのは、縁の下に DTrace が存在しているからです。 Ruby 2.0 preview2 でいよいよ DTrace がサポートされましたが、MacRuby や RubyMotion ではすでに DTrace をサポートしています。 プローブを確認してみる DTrace では、アプリに埋め込まれている「プローブ」と呼ばれる計測ポイントを用い、追跡をおこないます。 現在利用可能なプローブの一覧は sudo dtrace -l
先日に引き続き Parse で遊んでいます。今日はPush Quick Start Guide を読みながら Push Notifiation に挑戦しました。いろいろ設定することがあって大変ですね。慣れるとそうでもないのでしょうか?(^ ^;) 証明書を作成 「キーチェーンアクセス」を起動します。 メニューの “キーチェーンアクセス” -> “証明書アシスタント” -> “認証局に証明書を要求” を選択します。 メールアドレスと名前を記入して、"ディスクに保存" を選択し “続ける” をクリックします。CertificateSigningRequest.certSigningRequest というファイルが保存されます。(“CAのメールアドレス” の欄は未記入で良かったみたいです・・・) 次に iOS Provisioning Portal で App ID の設定をします。 “App
Parse は、ユーザ認証やプッシュ通知といったサーバ側の実装が必要となる機能をあらかじめ用意してくれていて、アプリから単に API を呼び出すだけで簡単にそれらの機能を利用できてしまうという、すごく便利なサービスです。 ユーザ登録 さっそく、ユーザ登録をして Parse を使ってみましょう。「Try it for free」ボタンをクリックすると無料でユーザ登録できます。 メールアドレスとパスワードを入力すると、次に Parse を使うアプリ名を聞かれます。後ほど変更することもできるので適当な名前を入力しておきましょう。私は「HelloParse」と安易な名前を入力しました。 Parse SDK をダウンロード Quick Start ページで Parse SDK の簡単な導入方法について説明が書かれていますので、これに従って作業してみましょう。 「1 Choose your platf
今まで主夫兼 MacRuby Team メンバーみたいな肩書きだったのが、9 月 4 日 からは RubyMotion Team メンバーという肩書きが増えました。ありがとうございます。2010 年 8 月に MacRuby Team メンバーに加えていただいてから、少しずつ MacRuby の不具合を取り除いてきましたが、ここまでのものになると参加当時は思ってもみませんでした。Bonjour RubyMotion! ということで、今日は RubyMotion で Bonjour を使ったものを書いてみました。 NSNetServiceBrowser と NSNetService というクラスを使って、iOS 側から Web サーバを探して接続するものとなっています。 app/app_delegate.rb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
アプリがどれだけダウンロードされているか開発者なら誰もが気になるところでしょうが、どの機能がどれだけ使われているかといったことも気になるところがと思います。 Google Analytics for iOS を利用すると、ユーザが使用している機能を簡単にトラッキングすることができます。 トラッキング ID を発行する Google Analytics の「アカウントの管理」画面で新しいアカウントを追加します。 次にアカウント名などの情報を記入します。 「ウェブサイトのURL」では “ウェブサイト以外"、「タイムゾーン」は "日本” を選択しておくとよいでしょう。 アカウントを作成した後、"UA-xxxxxxxx-1" のようなトラッキング ID が発行されます。あとで使用するので控えておいてください。 Google Analytics SDK for iOS をダウンロード Google
事前に「問題:次のRubyMotionアプリにはメモリ関連の不具合があります。5分以内に原因箇所を特定せよ。」という記事を書いておきました。今回はこの問題の解決方法を書きたいと思います。まだ読まれていない方は、まずそちらから読んでみてください。 この記事ではmotion-modeとrubocopをEmacsに導入してRubyMotionアプリ開発で活用する方法について扱います。motion-modeについては作者のainameさんが何か書いてくださるそうなので期待しましょう。 Rubocopはアプリがsnake caseとcamel caseが入り乱れていないかなど、一貫したルールでコードが記述されているかチェックしてくれるツールです。チームで開発する際はもちろん一人でコードを記述する際にも一貫したコードは、可読性が向上し将来的にメンテナンスが容易になることでしょう。
Twitter のつぶやきを眺めていると、RubyMotion アプリ開発では Sublime Text をエディタに使うのが定番になってきた感じがします。 いい加減、私もライセンスを購入しないといけないなと思いつつ、環境構築の手順などをまとめておきます。 1. Sublime Text をインストール 公式サイト から Sublime Text をダウンロードしてインストールします。 2. Sublime Package Control をインストール Sublime Text は Python で plugin を作成でき、さまざまな機能追加ができるようになっています。Github などを眺めていると便利な plugin がパッケージとしていろいろあります。Package Control は、それらパッケージのインストールや不要になった際にはアンインストールしたりと、文字通りパッケージ
RubyMotion で CGGradient を使ってグラデーションを作る際に 2 点ほどポイントがありそうです。 1. Pointer クラスを使用する CGGradient オブジェクトを作成する際に使用する関数 CGGradientCreateWithColorComponents は CGFloat 型の配列を受け取ります(変数 components, locations に注目してください)。 CGGradientRef CGGradientCreateWithColorComponents( CGColorSpaceRef space, const CGFloat components[], const CGFloat locations[], size_t count ); もし引数が Ruby の Array クラスや、Objective-C の NSArray を受け取
GCD を用いると簡単にマルチスレッドで処理を行うことができます。私たちは、GCD を使いたい処理を書き、適切な Dispatch Queue へ追加するだけです。あとは、GCD が必要なスレッドを生成して処理してくれます。 Dispatch Queue の種類として、以下の 4 つがあります。 Serial Dispatch Queue Concurrent Dispatch Queue Main Dispatch Queue (Serial Dispatch Queue) Global Dispatch Queue (Concurrent Dispatch Queue) Serial Dispatch Queue はタスクを逐次的に実行する際に用い、Concurrent Dispatch Queue は平行して複数の処理を行う際に用います。 Main Dispatch Queue と
今日は RubyMotion 勉強会に参加してきました。 13時半頃に会場最寄りの麹町駅に到着したのですが、駅を出てからの一歩目の方向を間違えてしまい、いきなり迷ってしまいました。しかも会場である「住友不動産麹町ビル3号」とは別に「住友不動産麹ビル」というビルを見つけてしまい、しばらく右往左往してこの時点で無駄に体力を消費してしまい死にそうでした。tweet して助けを求めるとやはり違うところに来てしまったことが判明し、なんとか無事に会場にたどり着くことができました・・・。 MacRuby と RubyMotion が CRuby とどう違っているのかという普段 MacRuby のパッチを書いている立場の視点から資料を用意したのですが、Ruby を知らない人を全力で置き去りにしてしまう内容になってしまったのは申しわけありませんでした・・・。 発表資料は、Speaker Deck に置いてお
今日はどのように iOS スタティックライブラリを作るのか、Xcode と格闘していました。 何も考えずにビルドしてしまうと ARM 用のバイナリのみのライブラリができてしまい、i386 バイナリを必要とするシミュレータ用には使えません。 ビルドの仕方がわからずに、どうすればライブラリが作れるか試行錯誤の課程を書きます。 ライブラリ用のプロジェクトを作成 Xcode で “Cocoa Touch Static Library” というテンプレートを選択し、スタティックライブラリ用のプロジェクトを作成します。 あとは、ライブラリで必要なプログラムを書きます。 ビルドする ARMv6、ARMv7、i386 バイナリを含むユニバーサルなライブラリが欲しいのですが、Xcode でどのようにビルドすれば良いのかわからず途中であきらめ、Terminal 上での操作しました。 Terminal で作成し
次のページ
このページを最初にブックマークしてみませんか?
『Watson's Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く