2014年12月11日木曜日
Swiftでの開発について
2つ前の記事でiOS Developer Programについて書きました。
つまり手順を省略して書くと、Xcode(無料)さえあればSwift開発できるけど、実機デバッグするには有料の登録が必要、ということです
Swiftはまだ新しい言語で、書ける人は少ない、とおもいきや、めっちゃ簡単に書ける言語でびっくりです!
ドキュメントははじめこそ英語しかなかったですが、もう日本語もいっぱいでていて、初心者でも十分書き始められると思います!
ただ、わざわざSwiftに手を出そうとしてる人はきっとCぐらい書けると思うので、そういう人向けのドキュメントを紹介します。
(僕もまとめようかと思いましたが、既存のドキュメントで十分に揃っていますので、今後適宜、詰まった所や詰まりやすいところをご紹介していこうと思います)
準備は上記の通り、Xcodeだけです!
まずSwiftの入門として、僕がプログラミングを始めた中高時代にプログラミングを教えてくれていた先輩の記事
CAMPHOR- Tech Blog
すごく教えるのがうまい方で、とてもわかりやすいです。ただ、ToDoアプリを作ろう、のほうが少しまだエラーがあります。
基礎がわかったら、応用として、
Swift Docs
がおすすめです。
逆引きSwiftが強いです。正直、コピペだけで簡単なアプリが作れます
オブジェクト志向については別で学ぶ必要があるかもしれませんが、この2つでかなりのことができるようになると思います。
以下、少しだけ補足説明を。(CAMPHOR- Tech Blogを読み終わったあたりで読み返してみてください)
※Optional型について
Swift独自の特徴としてOptional型の変数があります。
var a: Int = 5
var a: Int? = 5
nil(空データ)をいれられるかどうかの違いですが、Swiftでは、変数を空にできないためにある仕様です。バグ防止のための仕様みたいですが、Cで言う"int a;"みたいなことができないことにはじめは戸惑うかもしれません
※CGFloatみたいな特殊な型について
オブジェクト志向なので、変な名前の構造体やクラスがあるのは当然のことですが、CGFloatみたいな、特殊な変数の型もあります。Objective-Cをしていないと戸惑うと思います(僕もそうでした)
これ実は裏ではtypedefされていて、たとえばCGFloatは64bitsシステムならdouble、32bitsシステムならfloatを表します。
怯まずに進みましょう。
2014年12月9日火曜日
かっこいい名前
あるプログラミングのコンテスト(?)に参加するにあたり、チーム名を考える機会がありました。
”かっこいいチーム名”を目指して多くの議論を交わしましたが、その中で気づいたこと。なまえのかっこよさの要素
・字面のかっこよさ
・発音のかっこよさ
・意味のかっこよさ
単純に「かっこいい」といっても、この3つの観点があること。
大文字小文字でかっこよさが変わるのが字面のかっこよさのいい例です
Appleは、かじられた後がbite-byteのかけことばだったり、リンゴはキリスト教圏で知恵の実の象徴だったりするのがかっこよさを更に増しています
発音のかっこよさは…考えたら大体わかるでしょう!
この3つの要素全て満たせるような名前が理想です。
日本人から見たらたいていの英語はかっこいいですが、よく考えてみると日本人の書く英語に感動させられることはあまりありません。"That's OK, all right."と"You have my permission!"との違いです。
ここのNAVERまとめに、かっこいい英語表現がまとめられています。かっこいい・・・
他にかっこいい言語として、ドイツ語が有名です。
”Weiß Schwarz”は「白黒」という意味で、字面も意味もさほどかっこ良くなくても、ヴァイスシュヴァルツという発音にはかっこよさを感じます。
ここにドイツ語の発音や意味などがまとめられています。こちらもかっこいい
考えてるうち、リッチマン・プアウーマンを思い出しました。記事上部の画像もリッチマン・プアウーマンのものです
かっこ良すぎて憧れます。
リッチマンプアウーマンでは、まずはじめはNext Innovationであり、次はWONDER WALLになりました。
今回のテーマとは関係ないですが、Innovativeな開発で世界を変えたい、ってほんとに思ってます笑
最後に、かっこいいチーム名といえば、バンドがあります。
バンド名やグループ名の由来のNAVERまとめがキレイにまとめられています。
参考資料はいくつもあり、かっこいい候補はいくつもあるのに、いざとなると決まらないものなんですよね・・・
iOS Developer Programへの参加
iOS Developer Programに登録しました。
登録がややわかりにくかったので、まとめておきます。
年会費¥7800かと思えば税抜で、税込¥8424になります。消費税8%を久々に恨みました……
それにアプリで¥7800も稼げると思えないので、明らかに赤字です……
Apple Developer Programへの登録がまだの人は、ここから登録してください。こちらは無料で、登録するとXcodeがダウンロードできるようになり、Objective-CもSwiftも、ひと通り開発できるようになります。OSXのアプリもiOSのアプリも開発できます。
また、iPhoneのSimulatorも付属しているので、実際に動かして試すこともできます。
ただ、iOS Developer Programが有料、それもかなり高額な理由にはわけがあります。
まず1つ目は、Simulatorではハードウェアに制限があります。GPS情報はある地点に固定されていて、カメラを起動しようとするとエラーで終了します。加速度センサなども同様です。
2つ目は、アプリをiPhoneに転送出来ず、Simulatorで動かすことしかできません。登録すると、Xcodeから直接端末転送して、動かすことができます。カメラなどを使うにはこの方法しかありません。
3つ目は、Apple Storeにアプリを並べられません。
iOS Developer Programの登録はわかりにくかったので、簡単にまとめます。
まずここからiOS Developer Programに登録します。ギフトカードのみ、またはクレジットカードのみでの支払いが可能です。
登録後、Apple Developerのページの右上"Member Center"から"Your Account"→"Legal Agreements"に
iOS Developer Program License Agreement
があることを確認して下さい。
確認できたら、証明書を発行してもらう作業が必要です。
ここのサイトを見ながら、発行し、登録しましょう
ここを見ながらApp IDの取得、デバイスの登録を行います。iOS Dec Centerのページから行います。
ただし、OrganizerからDevicesを見よ、と書いてありますが、Xcode 6ではDevicesはWindowメニューにOrganizerと並列して存在します。
しかし、Provisioningファイルの読み込みがうまくいきませんでした。Xcodeの仕様がかわったためのようです。
ここを参照してみてください。とりあえずXcodeのPreferenceからApple IDにログインし、右下のView Detailsから詳細をみて、さっき作ったprofileが入っていればOKです
以上で作業は完了です。とても複雑ですね。
Xcodeの左上のボタンから、デバッグ先を接続中のiPhoneにできます。
プロファイルのエラーおこっても、何度も繰り返していると治りましたので、なんども繰り返してみてください
Swift頑張ります〜〜7800円〜〜
2014年11月24日月曜日
LaTeXでPNG形式の画像を使う
僕がTeXで作るときにいつも参照するサイトに書いてある方法だと、PNG形式の図は挿入できなかったので、自分へのメモも兼ね、まとめておきます。
こちらのサイトとこちらのWikiが参考になりました。
パッケージは以下を使います
¥usepackage[dvipdfmx]{graphicx}
表示するときは
¥includegraphics[width=16cm]{ファイル名.png}
で表示できますが、ただこれを書くだけではエラーが出ます。
本来eps形式の画像を表示するためのコマンドですので、pngでは足りないものがあるためです。
解決策は、ターミナルを開いて画像ファイルのあるフォルダに移動後、
extractbb ファイル名.png
を実行することです。
これにより、"ファイル名.xbb"ファイルが作成され、includegraphicsコマンドが正常に動くようになります。
コマンドがない場合、インストールからやり直したほうがいいと思います。
ebbコマンドでbbファイルを作成できますが、僕の環境ではそれだけではエラーが消えませんでした。
TeXは良いですね.
こちらのサイトとこちらのWikiが参考になりました。
パッケージは以下を使います
¥usepackage[dvipdfmx]{graphicx}
表示するときは
¥includegraphics[width=16cm]{ファイル名.png}
で表示できますが、ただこれを書くだけではエラーが出ます。
本来eps形式の画像を表示するためのコマンドですので、pngでは足りないものがあるためです。
解決策は、ターミナルを開いて画像ファイルのあるフォルダに移動後、
extractbb ファイル名.png
を実行することです。
これにより、"ファイル名.xbb"ファイルが作成され、includegraphicsコマンドが正常に動くようになります。
コマンドがない場合、インストールからやり直したほうがいいと思います。
ebbコマンドでbbファイルを作成できますが、僕の環境ではそれだけではエラーが消えませんでした。
TeXは良いですね.
2014年11月22日土曜日
VR at 京大学園祭(NF)
京大の学園祭(NF)で、VR ( VirtualReality, 仮想現実 ) のゲームを展示しました!
前期に実験班が同じだった友達に誘われ、
ヘッドマウンドディスプレイ:Oculus Rift DK2
モーションセンサ:Kinect for Windows v2
を使ったゲームをUnityを使って作りました。
制作メンバーは6人で、当日はスタッフがカツカツでしたが、楽しかったです!
僕達の作ったゲームは
この企画、一般のお客さんに多く体験していただき、とっても多くの衝撃与えられたのがとても嬉しかったです。初めてのVRは男女問わず、衝撃をうけていただき、やりがいを感じました。
発表に際し、1コンテンツではたりなそうだったため、外部の方にもきて発表していただきました。
一人はパノラマVRという、本当に世界旅行に行っているような気分を味わえるコンテンツを生業としている方でした。グランドキャニオンの崖の真上からの映像を全方位見られたりするのはVRならではで、面白いコンテンツでした。
一人は「ねこのるんば」という、ルンバの上にのった猫の気分を味わえるコンテンツでした。
酔います(笑)
でも一人称視点ですごく臨場感がありました。
またひとりは他大学の院生で、Oculus, Arduino, Leap Motion(指先の動きを認識するセンサ)をつかったコンテンツで、自分が魔法少女になって、画面上で左手に盾、右手に杖がでてきて、敵を倒すゲームです。
こちらのコンテンツは来週の同志社EVEでも展示される予定だそうです!
VRコンテンツはまだまだ少なく、アイデア勝負です!アイデア次第でどんどんいいものができそうだと、とても感じました。
いまのところあまり見かけない、センシングだけでなくアクチュエータも実装してみると面白そうだと思っています(ユニバのバック・トゥー・ザ・フューチャーはセンシングなどはないものの、アクチュエータ部分を十年ぐらい前に作ったのですから驚きです)
また人を驚かせるものを作りたいなあ
前期に実験班が同じだった友達に誘われ、
ヘッドマウンドディスプレイ:Oculus Rift DK2
モーションセンサ:Kinect for Windows v2
を使ったゲームをUnityを使って作りました。
制作メンバーは6人で、当日はスタッフがカツカツでしたが、楽しかったです!
僕達の作ったゲームは
ゲーム内のキャラクターが実際と同じ動きをするので、自動で動くトロッコにのった人の気持ちになって、上下左右に現れるコインを腕を動かして獲得するゲームです。
右下がゲーム画面で、青いのが腕です。
チームでゲーム作るのも初めてで、いい経験でした。
この企画、一般のお客さんに多く体験していただき、とっても多くの衝撃与えられたのがとても嬉しかったです。初めてのVRは男女問わず、衝撃をうけていただき、やりがいを感じました。
発表に際し、1コンテンツではたりなそうだったため、外部の方にもきて発表していただきました。
一人はパノラマVRという、本当に世界旅行に行っているような気分を味わえるコンテンツを生業としている方でした。グランドキャニオンの崖の真上からの映像を全方位見られたりするのはVRならではで、面白いコンテンツでした。
一人は「ねこのるんば」という、ルンバの上にのった猫の気分を味わえるコンテンツでした。
酔います(笑)
でも一人称視点ですごく臨場感がありました。
またひとりは他大学の院生で、Oculus, Arduino, Leap Motion(指先の動きを認識するセンサ)をつかったコンテンツで、自分が魔法少女になって、画面上で左手に盾、右手に杖がでてきて、敵を倒すゲームです。
こちらのコンテンツは来週の同志社EVEでも展示される予定だそうです!
VRコンテンツはまだまだ少なく、アイデア勝負です!アイデア次第でどんどんいいものができそうだと、とても感じました。
いまのところあまり見かけない、センシングだけでなくアクチュエータも実装してみると面白そうだと思っています(ユニバのバック・トゥー・ザ・フューチャーはセンシングなどはないものの、アクチュエータ部分を十年ぐらい前に作ったのですから驚きです)
また人を驚かせるものを作りたいなあ
2014年11月20日木曜日
Unityでのプラグイン同士の衝突-"DllNotFoundException"
先日Unityを使っている際、今まで動いていたにも関わらず、あるプラグインを入れると"DllNotFoundException"が出るようになりました。
これが出るタイミングがとてもわかりにくく、プラグインをいれただけではしっかりと動くのに、保存して再起動した後から、エラーで動かなくなります。
そのため、原因を発見するのがかなり遅れました。
今回原因となったのは、OculusPluginです。
Unity->Assets->Plugins->
にインポートしたプラグイン(dll)が入っているのが普通です。
しかしよく見ると、
Unity->Assets->Plugins->
Unity->Assets->Plugins->x86_64
など複数同名のプラグインがありました。
調べてみると、UnityはPluginsの直下にdllが1つでもあると探索をやめてしまうようです。
すなわち、あるプラグインが直下にあって、その他のプラグインがたとえばx86_64の中などにあると、そのフォルダの中にあるdllが読み込まれなくなります。
解決法は、プラグインを直下に置かないことです。好きな名前のフォルダをつくり、直下にあるプラグインを入れてしまえばOKです。
その他のプラグインでも同様の症状は起こりうると思います。
参考にしてみてください。
これが出るタイミングがとてもわかりにくく、プラグインをいれただけではしっかりと動くのに、保存して再起動した後から、エラーで動かなくなります。
そのため、原因を発見するのがかなり遅れました。
今回原因となったのは、OculusPluginです。
Unity->Assets->Plugins->
にインポートしたプラグイン(dll)が入っているのが普通です。
しかしよく見ると、
Unity->Assets->Plugins->
Unity->Assets->Plugins->x86_64
など複数同名のプラグインがありました。
調べてみると、UnityはPluginsの直下にdllが1つでもあると探索をやめてしまうようです。
すなわち、あるプラグインが直下にあって、その他のプラグインがたとえばx86_64の中などにあると、そのフォルダの中にあるdllが読み込まれなくなります。
解決法は、プラグインを直下に置かないことです。好きな名前のフォルダをつくり、直下にあるプラグインを入れてしまえばOKです。
その他のプラグインでも同様の症状は起こりうると思います。
参考にしてみてください。
2014年11月14日金曜日
Macでscilabを使う(グラフの描画)
複雑な関数のグラフを描くとき、困ります。
wolfarmなど専用のソフトを持っていれば良いですが、非常に高価で、個人で持つには難しいです。かと言って、無料版では制限が多すぎます。
そこでscilabというソフトウェアがあります。WinもMacもLinuxもここからダウンロードできます。
今回は、Macについての記事です。
まず、scilabをダウンロードして実行してみます。これで動けば記事などいりません。
僕の場合、2つほど問題がありました。
1つ目は、Yosemite版が何故かダウンロードに何度も失敗し、6度目でようやく成功しました。Yosemite以外版はすぐにダウンロードできたので、そちらを使ってもいいのかもしれませんが、何度もチャレンジしているとダウンロードできたので、数が大事です(?)
2つ目は、やっとのことでダウンロードできたにも関わらず、Java Runtime Environmentが必要とのメッセージが出てきて起動できず、これは公式ページからJavaをダウンロード&インストールしても治りません。
解決方法は、AppleのストアからJava for OSXをダウンロードすることです。(こちらのページ)
これをダウンロード&インストールすると、晴れてscilabを使えるようになります。
今回は、グラフの書き方(プログラムの書き方)については省略させていただきます。
じゃんじゃん使いましょー!
wolfarmなど専用のソフトを持っていれば良いですが、非常に高価で、個人で持つには難しいです。かと言って、無料版では制限が多すぎます。
そこでscilabというソフトウェアがあります。WinもMacもLinuxもここからダウンロードできます。
今回は、Macについての記事です。
まず、scilabをダウンロードして実行してみます。これで動けば記事などいりません。
僕の場合、2つほど問題がありました。
1つ目は、Yosemite版が何故かダウンロードに何度も失敗し、6度目でようやく成功しました。Yosemite以外版はすぐにダウンロードできたので、そちらを使ってもいいのかもしれませんが、何度もチャレンジしているとダウンロードできたので、数が大事です(?)
2つ目は、やっとのことでダウンロードできたにも関わらず、Java Runtime Environmentが必要とのメッセージが出てきて起動できず、これは公式ページからJavaをダウンロード&インストールしても治りません。
解決方法は、AppleのストアからJava for OSXをダウンロードすることです。(こちらのページ)
これをダウンロード&インストールすると、晴れてscilabを使えるようになります。
今回は、グラフの書き方(プログラムの書き方)については省略させていただきます。
じゃんじゃん使いましょー!
登録:
投稿 (Atom)