Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Visual Studio CodeでJavaを書いてみる

この記事は「Visual Studio Code Advent Calendar 2017」の7日目の記事です。

昨日は@74thさんの「Visual Studio Codeの各言語、環境のデバッグの仕方を集めたサイトを作ってる」でした。
明日は@Maxfield_Walkerさんです。

私からは「Visual Studio CodeでJavaを書いてみた話」をしたいと思います。

なんでVisual Studio CodeでJava書くの?

Javaのコードを書くとき、通常であればIntelliJ IDEAEclipseNetBeansなどのIDE(統合開発環境)を使います。コード補完やJavaDoc、ビルド、ユニットテストなど、様々な機能と周辺ツールを利用可能で、効率良く開発ができるためです。

私はJava EE開発をやっていたので、ずっとNetBeansをメインに使ってきたのですが、最近Visual Studio CodeでJavaを書く機会が増えてます。そのきっかけは11/24に参加した「Spring Fest 2017」でRed Hatの方がデモにVisual Studio Code使っていたのを見たためです。

そのときは「へー、Visual Studio CodeでJava書けるんだ」ぐらいの印象だったのですが、実際に使ってみたところ「軽い!」と動作のサクサク感に感動しました。

私が普段利用してるノートPCはVAIO Duo13という少し古い機種ではありますが、インテル Core i7-4650U (1.70 GHz)・メモリ8G・SSDでそこまで悪いSpecではありません。それでもNetBeansの起動は少し遅く感じます。

ちょっとしたお試しコードであればサクッとVisual Studio Codeで書いて動かす、というのは1つの選択肢になるのではないかなと思います。

Visual Studio Codeとは?

Visual Studio Code Advent Calendarなので、今さら書く必要がないと思いますが、Java方面だと名前は知ってるけど触ったことない、という方もいらっしゃる可能性があるため少しだけ触れておきます。

Visual Studio Codeは2015年にMicrosoftがリリースしたエディタです。Visual Studioという名前からWindowsでの動作をイメージを浮かべてしまいがちですが、Windows、Linux、macOSのプラットフォームで動くエディタであるのが特徴です。また、拡張機能(Extensions)は種類が豊富で開発も盛んです。
marketplace.visualstudio.com

f:id:kikutaro777:20171126023412p:plain

Visual Studio Code x Java

Visual Studio Codeを使ってJavaを書いてみようと思った方は一度公式サイトのドキュメントを参照ください。
code.visualstudio.com

以下、簡単に紹介します。

Java Extension Pack

Java Extension Packという拡張機能がMicrosoftから提供されています。基本的にはこちらをインストールするだけでOKです。
marketplace.visualstudio.com
f:id:kikutaro777:20171126023905p:plain

依存関係をみると以下の2つがあって、Red HatとMicrosoftが提供元となっています

Dukeかわいい。
f:id:kikutaro777:20171207005226p:plain

なんでテントウムシなんだろう…。J2SE 1.3.1のコードネームがLadybird=テントウムシらしいけど、それなのかな…。
f:id:kikutaro777:20171207005329p:plain

この2つはJava Extension Packをインストールすれば自動的にインストールされます。

Java Test Runner

12月1日にVisual Studio CodeがJUnitに対応したというアナウンスがありました。(ただしJUnit4)
blogs.msdn.microsoft.com

早速Publickeyで日本語記事になっていましたね。
www.publickey1.jp

こんな感じで今後もJavaに関連した拡張が増えていくと嬉しいなぁ。

実行結果

以下の簡単な例を試す手順をまとめます。(Mavenは入ってる前提)

  • Java Extension Pack x Spring Boot
  • Java Test Runner
Java Extension Pack x Spring Boot

Spring InitializrでWebのDependencyだけ入れたプロジェクトを落として解凍します。
f:id:kikutaro777:20171207011057p:plain

Visual Studio Codeの「ファイル」メニューから「フォルダーを開く」を選択し、解凍したフォルダを指定します。
f:id:kikutaro777:20171207011209p:plain

f:id:kikutaro777:20171207011438p:plain

開きました。
f:id:kikutaro777:20171207011548p:plain

「デバッグ」メニューから「デバッグの開始」を選びます。(F5キーを押してもよいです)
f:id:kikutaro777:20171207011754p:plain

すると環境の選択メニューが表示されるので「Java」を選びます。
f:id:kikutaro777:20171207012044p:plain

暫く待つと、launch.jsonが自動生成されるので必要なパラメータを指定します。今回はportの部分を空文字から8080に変更しました。
f:id:kikutaro777:20171207012242p:plain

再度「デバッグの開始」(またはF5)を実行すると、無事にSpring Bootのロゴが表示されてアプリケーションが実行されました。
f:id:kikutaro777:20171207012436p:plain

こんな感じで非常に簡単です。

Java Test Runner

こちらも簡単で、JUnitのテストコードを書くと下図のようにテストメソッドの上に「Run Test」「Debug Test」が表示されます。Debug Testはブレークポイントを置いてテストコードをデバッグできる実行方法です。
f:id:kikutaro777:20171207014436p:plain

右側のチェックマークやバツマークはテストの成功可否を表します。

その他機能

最低限の機能は揃ってます。

コード補完
f:id:kikutaro777:20171207014846p:plain

インポートの補助
f:id:kikutaro777:20171207012755p:plain

JavaDocのツールチップ表示&Help表示
f:id:kikutaro777:20171207013613p:plain

ウォッチ式
f:id:kikutaro777:20171207013929p:plain

定義への移動や
f:id:kikutaro777:20171207014935p:plain

参照の検索
f:id:kikutaro777:20171207015031p:plain

ステップイン・ステップアウト・ステップオーバー
f:id:kikutaro777:20171207015143p:plain

まだまだ機能的に足りない点はあると思いますが、ちょっとしたJavaコードを書く場合などには軽量でサクッと動くVisual Studio Codeを利用するのもありではないかなと思います。Visual Studio CodeはLinuxでもMacでも動くので、Java開発者の方は是非お試しください。

最後にVisual Studio Codeと全然関係ないのですが、来月以下のイベントを開催するので、興味がある方は是非ご参加ください!!
sendgrid.kke.co.jp

Xamarin & Java EE & 乃木坂46 でAndroidアプリ作ってリリースしてみました~

あまり大したアプリではないのですが…
@ytabuchiさんから以下頂いたので、晒してみます。


こんなアプリです(^^;
play.google.com
せっかくなので経緯など書いてみます。

スマホアプリ開発動機

昔から「一度はスマホアプリを作ってみたいなぁ」とは思っていて、Cordovaを触ってみるかな…と今年のはじめに書籍を買った後、突然Xamarin無償化の話がニュースになりました。

で、そこからXamarinを調べはじめ、5月にJapan Xamarin User Group (JXUG)さんの以下勉強会へ参加しました。

kikutaro777.hatenablog.com

勉強会の中で「9月くらいにアプリ作ったよLT大会みたいなものやれたら」みたいな話があって、面白そう!これを機会に何か作ってみたい!と思ったのがアプリ開発のきっかけでした。

あ、ちなみに乃木坂46の「きっかけ」という名曲があるので是非聴いてみてください!

www.youtube.com

あのミスチル桜井和寿さんがカバーするほどの曲です!

_人人人人人人人_
> 突然の宣伝 <
 ̄Y^Y^Y^Y^Y^Y ̄

www.asagei.com

実はこの宣伝もアプリと全く関係ないわけでなく(^^;実は関係大ありです。

私が大ファン(ファンクラブ会員番号11)だった堀北真希さんが結婚されて以降、自分を支えているのは乃木坂46でして…。
前々から好きだったのですが、今は好きとかいう次元を超えつつあります。

で、Xamarin関連でいえば5月に日本マイクロソフトさんのde:codeに参加して、乃木坂46エバンジェリストこと西脇さんのプレゼンに超感動したり

kikutaro777.hatenablog.com

@ytabuchiさんの色々なXamarin関連のセッションを聴いたり、その中で知ったXamarinエバンジェリストのちょまどさんのXamarin愛などに刺激を受けたり…

そんなこんな色々交じって「Xamarin + 乃木坂46」で何か作ろうと決めました。

ちょうどJava EE(というかほぼJAX-RSのみ)で、乃木坂ちゃんのRESTful API作ったりもしてたので、組み合せる形としています。

github.com

サーバサイドはOpenShift上の無償Gearなので、あまり負荷がでてくるようなら有償の使ったり色々考えないと。。

Xamarinのアプリ開発

8月ちょっと忙しそうなので…細かい技術的なことは別途書いていきたいなぁと。
ここでは簡単に。

苦労したこと

  • Xamarinの環境セットアップw
  • .NET 2.0以来のC# & Visual Studio(NuGet初だったり、昔はVS + VSSだったのでVS + Git初だったり)
  • Windows 10にOSアップデートしたらVisual Studio Emulator for Androidが起動しなくなったこと(Hyper-Vが駄目になったぽい)
  • アプリのアイコンやGoogle Play Store向けの画像の準備
  • Google Play Storeへのリリース申請で2,3回Rejectされてしまったこと

デザインセンスがないので、4点目はかなり苦労しました(^^;
人生で一番GIMP触った気が。透過とか全然やったことなかったので苦労しました。

こんなiconです。
紫は乃木坂ちゃんでN=Nogizaka、緑は妹グループの欅坂46でK=Keyakizaka。

f:id:kikutaro777:20160807120400p:plain

また、Google Play StoreからのRejectはかなり泣いたのですが、WebViewでYouTubeを使ってるのですが、レジュームしたときにバックグラウンドでYouTube動画が動かないことなど、色々条件があるためでした。ここもどこかで書きたい。

今後やりたいこと

最初色々やりたいなぁと思っていたのですが、最終的には一旦シンプルにして出すことにしました。そうしないといつまでもリリースできなさそうなので(^^;

技術的には

  • iPhoneアプリも出したい!
  • 組込みDBでオフライン機能とか入れたい(KVS AkavacheとかCouchBaseとか利用して)
  • Tabbed Pageのタブ切替をスワイプ対応したい
  • WebViewでサイト読込時にProgressBarかActivityIndicatorを出す
  • SendGridとか裏でつかって、機能要望とか障害報告飛ばしたい

自分はMacを持っていないので、現状Andoridアプリのみ。。。これだとAndroid Studio使ってるのと変わらない(*´Д`)ので欲しい。
でもiPhoneアプリ、登録料というか年間のが高いっすねぇ…。完全趣味で広告なしなのであれ。

ユーザ観点では

  • 推しメンでフィルタしたい
  • よくみるまとめサイトとかをタブに追加したい
  • ブログ更新とかあったらプッシュ通知してほしい

とかですかね。プッシュ通知はXamarin Formsでどこまで共通的にできるのか…ってかDependency Serviceなのかな。

ちなみに、似たようなアプリは結構あるのですが、とりあえずウリにしてるのは妹分の欅坂46と合わせたアプリという点と、早速ひらがなけやきに対応した辺りでしょうか。

アプリのコードは普通に下に置いてます(^^;全然C#慣れなくてあれですが。
github.com

面白いこと

Google Play Storeで「乃木坂46」と検索したら、公式から出てる「乃木恋」と同じラインに出てきて地味に興奮しました(^^)やっぱりこういうのが楽しい。

f:id:kikutaro777:20160807030249j:plain

出だし、思ってた以上にインストールされてびっくりです。サーバサイドが心配(^^;

f:id:kikutaro777:20160807121631j:plain

追記

画面イメージなど興味ある方はこちらをどうぞ↓
nogizaka46.hatenablog.jp
nogizaka46.hatenablog.jp

Visual Studio OnlineからチェックイントリガーでWindows Azureへ自動デプロイ

ブログタイトルのJava EEに反して、今日は.NET、というかVisual Studioについて(^^;

Visual Studio 2013 Ultimate(90日評価版)を使って、Visual Studio Online上のチェックインをトリガーにWindows Azureへデプロイする流れで遊んでみました。当たり前だけど、この辺、相性抜群なんだなぁと改めて思ったり(^^;

ほとんど以下MSさんの資料手順通りなのと、既にこんなの多くの人が(運用レベルでも)やってると思うので、今日のエントリはあくまで個人的メモです。

図にするとこんな感じ

f:id:kikutaro777:20140305225354p:plain

続きを読む
にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村