Marmalade SDKでHelloWorld
3分間でHelloWorld
ダウンロードやライセンスの取得の時間はかかりますが、それが完了した前提でHelloWolrdをiOS Deviceで実行する方法を説明します。
ドキュメント「Creating an Application」をベースに進めています。
プロジェクトディレクトリの作成
お好みの場所にプロジェクトディレクトリ(HelloWorld)を作成します。
% mkdir HelloWorld
付随するディレクトリを作成します。
% mkdir HelloWorld/data
% mkdir HelloWorld/source
MKBファイルの作成
HelloWorld/HelloWorld.mkb
files { (source) HelloWorld.cpp } subprojects { iwgx }
ICFファイルの作成
HelloWorld/data/app.icf
[S3E] SplashscreenBkR=255 SplashscreenBkG=255 SplashscreenBkB=255 MemSize = 1000000
#### ソースファイルの作成
HelloWorld/source/HelloWorld.cpp
// Include header files for S3E (core system) and IwGx (rendering) modules #include "s3e.h" #include "IwGx.h" // Standard C-style entry point. This can take args if required. int main() { // Initialise the IwGx drawing module IwGxInit(); // Set the background colour to (opaque) blue IwGxSetColClear(0, 0, 0xff, 0xff); // Loop forever, until the user or the OS performs some action to quit the app while(!s3eDeviceCheckQuitRequest() && !(s3eKeyboardGetState(s3eKeyEsc) & S3E_KEY_STATE_DOWN) && !(s3eKeyboardGetState(s3eKeyAbsBSK) & S3E_KEY_STATE_DOWN) ) { // Clear the surface IwGxClear(); // Use the built-in font to display a string at coordinate (120, 150) IwGxPrintString(120, 150, "Hello, World!"); // Standard EGL-style flush of drawing to the surface IwGxFlush(); // Standard EGL-style flipping of double-buffers IwGxSwapBuffers(); // Sleep for 0ms to allow the OS to process events etc. s3eDeviceYield(0); } // Shut down the IwGx drawing module IwGxTerminate(); // Return return 0; }
ターゲットの確認
SchemaでDebug GCC ARMを選択していることを確認します。
Build & Run
Build & Runを押すとHelloWorldがMarmalade Simulatorで実行されます。
iOS Deviceで実行
/Developer/Marmalade/6.4/Applications/ にあるDeploy Toolを実行します。
HelloWorld/build_helloworld_xcode/deploy_config.py を選択します。
Select Build:でARM GCC Debugを選択してNextボタンを押します。
そのままNextボタンを押します。
Select Platform:でiOS(iPhone, iPad, iPod)を選択してNextボタンを押します。
そのままNextボタンを押します。
そのままNextボタンを押します。
Deploy Allボタンを押します。
完了のメッセージが出ます。この時点でiTunesにHelloWorldアプリが入っているので、iOS Deviceと同期を取ります。
iOS Deviceでの画面は次のようになっています。
HelloWorldアイコンを押すと...
debug画面が出て...
Splash Screenが出て...
HelloWorldアプリが実行されます。
最後に
Marmalade SDKの日本語ドキュメントが見当たらなかったので、駆け足ですがブログを書いてみました。
もっと深掘りしていきたいです。12月にMarmalade SDKアドベントカレンダーをやってみようかなと考えています。
25日分書ける自信がイマイチありませんが^_^;)
KiCadに移行します
きっかけ
いままで基板設計にはEagle Light Edition(商用ライセンス版)を使っていました。 最近になって、4層基板 and/or 大型基板を設計したくなってきたのですが、さすがにStandard Editionを購入するのは躊躇してしまいます。
ビルド
とりあえずWindows版をビルドしました。KiCad Windows Builderというビルドツールがあるので、こちらを使ってビルドしました。ビルドしたバイナリの実行画面は次の通りです。
使用感
スミマセン。まだ使い方が全然ワカリマセン orz...
konashiを使ってみました
ユカイ工学株式会社のkonashi(旧称:monaka)を使ってみました。
ミツミ電機のBluetoothモジュールWML-C69を使用したフィジカル・コンピューティング・ツールキットです。
http://www.ceatec.com/2012/ja/news/webmagazine_detail.html?mag_vol=100&mag_type=Web_C_00
初めてYouTubeにアップロードしてみました。
http://www.youtube.com/watch?v=3UJIPOLparA
次はAndroidへの移植にしようか、Kivyへの移植にしようか、迷っています。
Kivy Advent Calendar 10日目 Kivy 1.5.0がリリースされました
Kivyの新バージョン1.5.0がリリースされました。
https://groups.google.com/forum/#!topic/kivy-users/vQLGJfuFOCY/discussion
Kivy Advent Calendar 7日目 Kivyで日本語を表示する
- 最初に
下記のようにコードを変更します。
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.button import Button
class HelloApp(App):
def build(self):
return Button(text = u'こんにちはKivy')
HelloApp().run()
実行すると以下のような残念な結果になります。
- システムフォントを使う
OS Xのフォントを使うためにはフォントのパスを指定します。
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.button import Button
class HelloApp(App):
def build(self):
return Button(text = u'こんにちはKivy', font_name = '/Library/Fonts/Osaka.ttf')
HelloApp().run()
- IPAフォントを使う
システムフォントを使う場合、デバイス毎に異なるフォントを指定しなければなりません。共通のフォントを使う方法を次に示します。
fonts/ 以下にIPAフォントを置きます。
下記のようにフォントの相対パスを指定します。
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.button import Button
class HelloApp(App):
def build(self):
return Button(text = u'こんにちはKivy', font_name = 'fonts/ipaexg.ttf')
HelloApp().run()
実行結果は次のようになります。
Kivy Advent Calendar 6日目 iOSデバイスでKivyアプリケーションを実行する
- 開発環境の構築
開発環境を下記のURLを参考にして作成します。
http://kivy.org/docs/guide/packaging-ios.html
Homebrewを使う手順が記載されていますが、MacPortsでも環境構築可能です。 私の11/30のブログを参照してください。
$ tools/create-xcode-project.sh hello ~/proj/hello
sedのエラーが出力されますが問題ありません。
app-hello というディレクトリにプロジェクトが作成されます。
- プロジェクトのビルドと実行 Xcodeのプロジェクトを開きます。
$ open app-hello/hello.xcodeproj
適切なターゲットを選択します。
Runボタンをおしてビルドします。
helloというアプリケーションがインストールされました。
実行すると下記の画面になります。
Kivy Advent Calendar 5日目 AndroidでKivyアプリケーションを実行する
- エミュレータまたは実機にapkファイルをインストールする
下記のURLからapkファイルをダウンロードする。
http://kivy.googlecode.com/files/KivyLauncher-1.4.1.0.apk
インストールします。
$ adb install KivyLauncher-1.4.1.0.apk
- ソースコードをsdcardにコピーする
main.pyとandroid.txtというファイルを用意します。
main.py
# -*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.button import Button
class HelloApp(App):
def build(self):
return Button(text = 'Hello World')
HelloApp().run()
android.txt
title=HelloWorld
author=ytakeuch
orientation=portrait
以下はホストのshellです。
$ adb shell
以下はandroidデバイスのshellです。
$ cd /sdcard
$ mkdir kivy
$ mkdir kivy/hello
$ exit
以下はホストのshellです。
$ adb push main.py /sdcard/kivy/hello
$ adb push android.txt /sdcard/kivy/hello
Android端末上でKivy Launcherを起動します。
ref. http://kivy.org/docs/guide/packaging-android.html#packaging-your-application-for-kivy-launcher