Monthly Archives: March 2016

Android向けKotlinのロードマップ

Googleが最近アナウンスした中で最も興味深いニュースはJackコンパイラによりAndroidNでJava8を(限定的に)サポートするという話ではないでしょうか。当然ながら皆様はこれがKotlinのAndroid開発向けのロードマップにどう影響するか興味のあることと思いますのでここで説明させてください。 KotlinのAndroid向けのロードマップ JetBrainsではKotlinがAndroid開発で優れたツールとなるよう多大な注目を置いています。今後いくつかのバージョン1.0.Xにおけるリリースでは引き続きツール群やライブラリの改善を施していきます。フォーカスは三つのエリアに渡っています。開発ワークフローのスピードアップ、ランタイムライブラリのサイズ削減、ツールサポートの充実化です。 開発ワークフロー 開発ワークフローの高速化のため、KotlinのGradleプラグインはインクリメンタルコンパイルをサポートするようになります。ソースに変更があった場合、モジュール全体ではなく本当に影響のある箇所だけを再コンパイルするためビルド時間を大幅に短縮できます。 続いてAndroidのビルドパフォーマンス改善のためAndroidの新しいJack and Jillツールチェインとのインテグレーションを提供します。 現在のところKotlinの生成するバイトコードのハンドルを妨げる問題(196084 と 203531)がありますが、Googleのチームと連携して問題を解決するか、JetBrainsサイドにて回避策を提供する予定です。それが完了したら、インクリメンタルコンパイル中に変更のあったクラスファイルのみJillを使ってトランスレート出来るようになります。(なおこれまでAndroidサポートでは毎回全てのクラスをトランスレートする必要がありました)。 そしてインスタントランです。現在のところKotlinではコールドスワップしかできず、ウォームとホットスワップをサポートするためにもうしばらく調査が必要です。しかし早急に可能な限りを尽くします。それまでの間、JRebel for Androidを使えばKotlinのホットスワップを行うことが可能です。 ランタイムサイズ メソッド数を削減してkotlin-stdlibのサイズを縮めるべく、いくらかの改善を施す計画があります。現在のところ7191です: 複数ファイルに渡るファサードクラスのトップレベルファンクションの最適化や、inline-onlyの関数をランタイムバイナリから外すとで数千のメソッド数を削減できる見込みです。 ツールサポート Kotlin 1.0のAndroidサポートで欠けているものの内一番大きいのがLintチェックでしょう。でもご安心ください。もちろんKotlinのLintチェックのリリース予定があります。既にAndroid Studio 1.5でLintチェックができるよう実装済みで、Kotlin 1.0.2でリリース予定です。そしてAndroid Studio 2.0向けについては現在実装中です。LintチェックはKotlinとJavaコードの共通基盤上に実装しており、今後Android SDKがデフォルトの状態でKotlinサポートできるようこの基盤をAndroid SDKへコントリビュートする予定です。 Android特有のIDEサポート、例えば”New Kotlin Activity”アクション、コードインサイトやナビゲーションなどは少しずつ1.0.xリリースで加えられていきます。 KotlinとJava 8 Java 8がリリースされてしばらく経過しておりますが、Android開発を行っていない開発者でもJava 8よりもKotlinを選択して楽しんでいらっしゃる方々が沢山いらっしゃいあす。Androidが正式にJava8の言語機能をサポートしましたが、KotlinとJavaの選択にどう影響を与えるでしょうか? まず第一に、Java 8のラムダをAndroidにもたらしますが、Androidのツールチェインがサポートするラムダの既存プラットフォーム(Nリリース以前)サポートはKotlinによるサポートとは重要な違いがあります。違いを理解するため、シンプルなコード例をお見せします: Kotlin: list.forEach { process(it) … Continue reading

Posted in Kotlin | Leave a comment

WebStorm 2016.1リリース: より的確なリファクタリングオプション、Angular 2サポート/デバッガの改善等々

今年最初のメジャーアップデートであるWebStorm 2016.1をリリースしました。JavaScriptとTypeScriptの編集やリファクタリングエクスペリエンスの改善、そしてIDEのデバッグ機能のセットアップの改善が目玉となっております。 こちらよりダウンロードしていただけます。 アップデートのハイライトは以下の通りです: ECMAScript 6とTypeScriptサポートの改善: より的確なリファクタリングオプション、Unused importsインスペクションとOptimize importsアクション。 Angular 2サポートの改善: イベントとプロパティバインドのコードアシスタンス、データバインド内のコード補完。テンプレートに定義している変数、カスタムイベントハンドラ、templateUrlとstyleUrlフィールドのコードインサイトとナビゲーション 非同期クライアントサイドコード、ES6のarrow function、Webとサービスワーカーのデバッグ IDEからNode.jsアプリをリモートやVagrant boxで起動 他に触れておくべきなのはAngularJS ui-router/CSSカスタムプロパティのサポート、ElectronアプリのIDEからの実行/デバッグ、JSON Schemaフォーマットサポートによるコードアシスタンス、Convert string to template stringインテンションです。 詳しくはWhat’s new in WebStorm 2016.1(後日翻訳予定)をご参照ください。 JetBrains WebStorm Team [原文]

Posted in WebStorm | Leave a comment

PhpStorm 2016.1リリース!

プロフェッショナルPHP IDEの最新メジャーリリースであるPhpStorm 2016.1をリリースしました。こちらよりダウンロードしていただけます! 2016.1はバージョン番号の通り2016年最初のリリースとなります。数々の新機能に加えてバグフィクス、ユーザビリティの改善が施されています。このリリースでは待望のPHP言語サポートや開発ツールの改善に焦点を当てています。 新しい機能や改善について詳しくはPhpStorm website(後日翻訳予定)をご覧ください。   PhpStorm 2016.1の特筆すべき新機能は以下の通りです: PHP言語サポートの改善: 型推論、補完、traitのサポートなど待望の改善が施されています。またgroup useステートメントのフルサポートや“Make Static”リファクタリング、“Convert switch to if”(switchをifに変換)、“Convert if to switch”(ifをswitchに変換)、“Flip if/else branches”(if/else文の反転)といったインテンションを追加しました。 新しいデバッグエクスペリエンス: Zero-Configurationデバッグモードが新しいユーザーに見つけやすくなるようにしました。またRESTful Webサービスのデバッグを“XDebug for REST Client”機能より行えます。. フレームワークとツール: PhpStormはSFTP/FTP/FTPSサーバーとリモートインタプリタのキープアライブが出来るようになりました。6年間待ち望まれていた機能です!プロジェクトレベルのインタプリタ、PHPUnit/Behatで失敗したテストの再実行、リモートインタプリタのユーザビリティ改善もあります。 詳しくはYouTrackでPHP関連の修正一覧や、リリースノートをご確認ください。 またいつも通り、このアップデートでは最新web技術サポートの改善も施されています: Angular 2サポートの改善 TypeScriptサポートの強化 JavaScriptデバッガの新機能 PhpStorm 2016.1はIntelliJプラットフォーム由来の最新機能も備えています: RTL言語サポート スピードサーチ(”Show Usages”と“Terminal”内) JSON schema … Continue reading

Posted in PhpStorm | Leave a comment

IntelliJ IDEA 2016.1リリース

ついにIntelliJ IDEA 2016.1の登場です。2016年最初のリリースになります。4ヶ月でJetBrainsが達成した内容にきっと驚くことと思います。是非ダウンロードして新機能の数々を体験してみてください。このポストでは主な改善点をお知らせ致します。   新機能 デバッガ Evaluate ExpressionとウォッチでJavaコードをデバッグしている場合もGroovy表記が使えるようになりました。Groovyのコンパクトな表現により、特にコレクションを扱っている場合に便利です。 現在のスレッドが他のスレッドによりブロックされている場合、再開することをサジェストします。 今までは再開すると他のサスペンド中のスレッド全てが再開していました。現在のスレッドのみを再開するように設定出来るようになりました。 デバッグ中のクラスファイルと、見ているソースコードに違いがある場合教えてくれるようになりました。無駄な時間、間違いを防げます。 バージョン管理 Git 2.5で導入されたgit worktreeをサポートしました。リポジトリの多数のリビジョンをシンプルに扱えるようになります。 ブランチのメニューに二つのアクションが加わりました: Checkout with Rebase(リベースしてチェックアウト)とリネームです。Checkout with Rebaseを使うと個別に二つのアクションを実行するよりも早く作業が完了します。 リビジョンのマージと比較はワード単位の差異ハイライトにより見やすくなりました。 エディタ コードエディタにre-order method arguments、array elements、tag attributes(メソッド引数、配列要素、タグ属性の順序変更)アクションが加わりました。Alt+Ctrl(Cmd)+Shift+←または→にて移動させることができます。 スタティックメソッドや定数はクラスと同様、Alt + Enterを押すだけで自動的にインポートされるようになりました。 Add unambiguous imports on the fly(曖昧なインポートを自動的に追加)オプションはスタティックメソッドや定数に対しても効くようになりました。 コードエディタがRTL言語(アラビア語、ヘブライ語)をサポートしました。 Gradle IDEのプロジェクトモデルはGradleに準拠するようになりました。GradeプロジェクトのソースセットはIDEにて個別のモジュールとして扱われ、個別に依存を持つことができます。これにより多くのユーザーが抱えていた問題が解決するはずです。 … Continue reading

Posted in IntelliJ IDEA | Leave a comment

Kotlin Educational プラグイン

Kotlinは習得が簡単だと常々申し上げてきました。実際簡単なのですが、言語の分かりやすさだけでなく、学習素材も重要です。この点について新しいステップを踏み出しました。Kotlin Educationalプラグインです。 Kotlin Educationは IntelliJ IDEA 2016.1用のプラグインで、名前の通りトレーニングコースを提供します。一つのコースにはいくつものタスクがあり、それぞれのタスクには空欄があり、問題解決のために皆様に穴埋めをしていってもらいます。 現在のところ、コースはひとつだけあります。有名なKotlin Koansです。すでにオンラインでも利用可能なもので、Kotlin初学者に大変人気です。オフラインバージョンのKoansもにたようなものですが、もちろんIntelliJ IDEAのリファクタリングやインテンションアクションを活用しながら学ぶことができます! Kotlin Koansについて質問が何か質問がございましたら、Slackの#koans チャンネルへどうぞ。 P.S. あなた自身でコースを作りたい場合はメールにて直接ご連絡ください。 [原文]

Posted in Kotlin | Leave a comment

Kotlin 1.0.1 EAP!

Kotlin 1.0をリリースしてから1ヶ月になります。最初のバグフィックスアップデートを準備する間、ユーザーベースはおよそ2倍となりました。 Kotlin 1.0.1は言語(や、Kotlinプロジェクト全体)のバグフィクスやパフォーマンス改善や、ツール/インテグレーション周りの新機能をリリースする1.0.Xバージョンの最初のリリースになります。今回はIDE機能の細かな改善にとどまりますが、1.0.2以降ではもっと便利な新機能が搭載されていく予定ですので楽しみにしてください。 1.0.1の変更点 全ての変更内容についてはリリースノートをご覧ください。中でも特筆すべき数字やハイライトを以下に挙げます: コンパイラ、ライブラリ、Gradleプラグインの47に渡る修正、パフォーマンス改善 Gradle 2.12との互換性 IDE機能: IDEA 2016との互換性 Kotlin Education Plugin (IDEA 2016向け) KT-9752 “Move declaration to another file”でより便利なファイルチューザー KT-9697 メソッドをコンパニオンオブジェクトへ、または逆への移動 IDE周りの39におよぶ修正 是非EAPをお試し頂き、フィードバックを頂ければ幸いです。皆さんでKotlinをよりよいものにしていきましょう!

Posted in Kotlin | Leave a comment

JetBrains Toolbox – リリースとバージョニングの変更

サブスクリプションへ移行することのゴールの一つに、1年に1回メジャーリリースを行うリリースサイクルから、バージョニングとは関係なしに継続的に価値を提供するしくみへと変わることがあります。 このモデルの変更によって今後バージョンが意味するところは何なのかという質問がありました。一般的にユーザーが新しいバージョンで気になること言えば次のようなものです: 新バージョンは何を提供してくれるのか? 新バージョンによって自分の作業がどう変わるのか? 新バージョンを利用することは可能なのか? しかし、これらの質問よりもよくある質問に答えることにしましょう。つまり、IntelliJファミリーのIDEに共通な機能がありますが、一つの製品でなされた新機能やバグフィックスが他の製品にも反映されているのかという声を良く伺います。使っているのが複数製品であるか単一製品であるかにかかわらず、共通的な新機能や修正がいつ個々の製品に反映されるのかは明確でなければなりません。 別の問題、といってもこれは内部的な問題ですが、我々のバージョンの管理です。複数の製品、複数のリリースを年間何度もおこなっていくにあたってバージョン番号を上げていきたいということです。 シングル・バージョン。並行リリース。 我々はJetBrainsツールボックスにあるすべての製品について同一のバージョン体系に変更します。これらにはすべてのIDEおよび.NETツールが含まれています。 加えて、新たなバージョン体系を導入します。これは次のようなフォーマットで表されます。 YYYY.R yyyyが表すのは年です。rはその年のリリースを表します。一年のうちに複数回のリリースをするという狙いがここには込められています。各製品には各製品独自のビルドナンバーがあり、それはyyyy.r.n.m*という形で表されます。 例えば、IntelliJ IDEAの2016.2というバージョンでそのビルドナンバーが2016.2.1.10というものをリリースするでしょう。引き続きWebStormの2016.2でビルドナンバーが2016.2.5.30というものをリリースするでしょう。それらはともに2016.2のリリースの一部です。 結果、現在JetBrainsツールボックス製品でEAPとして提供しているものはバージョン2016.1としてリリースされることになります。 この変更によりバージョン方式が統一されるだけでなく、平行リリースも行われるようになります。つまり、JetBrainsツールボックスの製品は年間を通して同じ回数のリリースがあり、それらは一定の期間内にリリースされます。 *なお新しいバージョン体系の適用はバージョン2016.1から始まりますが、関連作業が全て終わり完全に統一されるのは2016.2となる見込みです。 これによって何がもたらされるか? この変更がユーザーおよび我々に幾つかの利点があると考えています。 ユーザーの利点 頻繁な製品のアップデート サブスクリプション制への移行の目標は年間のリリース回数を増やすことでした。これにより新機能や改善を準備出来たらメジャーリリースを待たずに提供できるようになります。 年ベースのバージョン 2016.2というバージョンは単純な11よりも意味にあふれています。なぜなら最近のリリースかどうか年という観点でわかりますし、その年のいつのリリースかもわかります。 並行バージョン すべての製品が同じバージョンになります。WebStormの2016.2とIntelliJ IDEA2016.2とを比較するのはWebStormの11とIntelliJ IDEAの16との比較に比べて容易にできます。 可用性 サブスクリプションが有効であるなら、最新バージョンが利用可能です。どのバグフィックス更新がお手持ちの恒久フォールバックライセンスで利用可能かどうかについては、JetBrainsアカウントからご覧になれます。 JetBrainsの利点 より頻繁なリリース JetBrainsは価値を提供することに注力しており、新機能か修正かにかかわらず、提供可能になったらすぐにリリースしたいと考えています。そして、1年に1度というゆっくりなペースでメジャーバージョンアップリリースするような体系を保持するべきではないと考えています。より頻繁なリリースにより我々はより早く価値を提供し、より速くフィードバックが得られます。 年ベースのバージョン 複数の製品を扱っているためコラボレーションやリリースプランニングにとって製品のリリース、新機能やバグフィックスのリリースがいつだったかをバージョンナンバーによりひと目で判別がつくのは非常に都合が良い。新しいバージョン体系は我々によりよい時間のメンタルモデルを与えてくれる。 並行した内部・公開バージョン 我々は共通のプラットフォームを利用しているため、内部的にはツールがシングル・バージョン体系に従っている方がより都合がよくなります。各製品のバージョン番号も我々のブランチに合わせてあるため、実際のビルドナンバーであるほうが都合がよくなります。この変更に唯一直接的な影響を受けない製品は.NETツール群です。しかし我々の新製品Project Rider .NET IDEはIntelliJプラットフォームを共有するほか、それらの製品はJetBrainsツールボックスから利用可能であるため、単純化して同一のモデルに従うのがよいと判断しました。 … Continue reading

Posted in お知らせ | Leave a comment