さっき決めたブログ

[Nim]IntelliJ IDEA+NimでAndroidアプリを作成したかったが、いまいちだった件

2020年10月5日 6:40 PM01.91KNimPROGRAMNimgccAndroidIntelliJ_IDEAndk

事前に言っておくと、今回のこの試みは一応動くところまではいったのですが、実際に活用するとなると色々な問題があります。
あまり期待せずに参考程度に見ていただければと思います。

いままでNimで試してみたい事を色々とやってきましたが、これが最後です。
今回はAndroidアプリを作成してみようと思います。

Androidアプリを作成する場合、JetBrains社のIntelliJ IDEAとか Android Studio などを使用するのが一般的ですが(あと、Eclipseも)、今回は今まで通り VisualStudio code を使用して開発したいと思っています(本当はiOSアプリとかも試したみたいのですが、Mac持ってないんでとりあえずパス)。

色々調べていくと、確かに VSCode + nim のみで Androidアプリを作成する方法がありました。
(GitHubMateusz Czaplińskiという方が色々な取り組みをされているようです)
https://github.com/akavel/hellomello
https://github.com/akavel/dali

しかしながら、ソースを呼んで見ると、まだちょっと無理かな。と、感じてしまいます。
内容が難しいというよりか、Android の VM 周りへのアクセス(主にUI)の書き方が、アセンブラ的な記載をしなくてはならず、実際に使用するのはかなりキツイといった印象です。

なので、今回は Nim のみでの開発は断念し、IntelliJ IDEA での Kotlinを用いた Android Project のネイティブ部分で C言語(C++)の代わりとして Nim を用いる方向で検証する事にします。

Nim 単体で Androidアプリを作成する取り組みは、とても面白いので、今後も注視して行きたいとは思いますが。

IntelliJ IDEAでNDKプロジェクトを作成

こちらについては別の記事で紹介していますので、そちらを参考にしてください。
この記事で作成したAndroid NDKプロジェクトの C++ 部分を Nimに変更します。

Nimのコードを作成

次に Nimのコードを作成します。
[プロジェクトフォルダ]/app/src/main 配下に nim フォルダを作成し、native_lib.nim を作成します。
(C++のファイル名は native-lib.cpp でしたが、名前に"-"(ハイフン)が入ると何故か上手く行かなかったので、"_"(アンダーバー)にしています)。

多分これで元の C++ソースと大体等価なんじゃないかな?

今回、JNIをNimで使用するため、Yuriy Glukhov氏が公開している jnim を使用しています(もしかしたらCのヘッダをインポートするだけでもいいのかも)。
なので、こちらのコマンドを入力して、jnimをインストールしておきます。
nimble install jnim

投稿者プロフィール

KARASU
うーん いろいろ考え中。。。

コメント

コメント取得中...

関連記事

TOPへ