Groovyで文字列を連結する場合、+演算子は行末に書くのが無難そう。詳細は下記を参照。
2012年12月28日金曜日
2012年12月21日金曜日
【宣伝】iEverword冬休みセール
Evernoteと連携した単語カードiPhoneアプリ、 iEverwordを、2012/12/21から2013/1/8までの間、冬休みセールとして¥85(通常¥250)で販売します。ご興味のあるかたは、下記リンクをご参照ください。
2012年12月14日金曜日
Gradle Effective Implementation Guide – Chapter 1
以下、Gradle Effective Implementation Guideの1章についての読書メモ。
いわゆるGetting Started+α。Gradle経験者は見出しと実行例をざっとみて、知らないところや気になるところだけ拾い読みすれば大丈夫そう。Gradle初心者は素直に読み進めればよい。
なお、IDE (Eclipse, IntelliJ IDEA)でのGradleの使用については、12章に記述あり。
いわゆるGetting Started+α。Gradle経験者は見出しと実行例をざっとみて、知らないところや気になるところだけ拾い読みすれば大丈夫そう。Gradle初心者は素直に読み進めればよい。
なお、IDE (Eclipse, IntelliJ IDEA)でのGradleの使用については、12章に記述あり。
2012年12月10日月曜日
GradleでTask Ruleを使ってタスクを定義する
GradleでTask Ruleを使ってタスクを定義する方法は、以下の通り。
addRuleの第1引数に指定したdescriptionは、tasksタスク実行時にRulesのセクションに表示される。第2引数のクロージャでは、特定の条件にマッチするタスク名に対応するタスクを定義する。この例では、‘sample’で始まるタスク名をもつタスクを定義している。
tasksタスクを実行した結果は、以下の通り。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tasks.addRule("Pattern: sample<ID>") { String taskName -> | |
if (taskName.startsWith("sample")) { | |
task(taskName) << { | |
println taskName - 'sample' | |
} | |
} | |
} |
addRuleの第1引数に指定したdescriptionは、tasksタスク実行時にRulesのセクションに表示される。第2引数のクロージャでは、特定の条件にマッチするタスク名に対応するタスクを定義する。この例では、‘sample’で始まるタスク名をもつタスクを定義している。
tasksタスクを実行した結果は、以下の通り。
Task Ruleとして定義したタスクを実行した結果は、以下の通り。$ gradle tasks :tasks ------------------------------------------------------------ All tasks runnable from root project ------------------------------------------------------------ Help tasks ---------- dependencies - Displays all dependencies declared in root project 'aaa'. dependencyInsight - Displays the insight into a specific dependency in root pr ect 'aaa'. help - Displays a help message projects - Displays the sub-projects of root project 'aaa'. properties - Displays the properties of root project 'aaa'. tasks - Displays the tasks runnable from root project 'aaa' (some of the displ ed tasks may belong to subprojects). Rules ----- Pattern: sample<ID> To see all tasks and more detail, run with --all.
$ gradle sample1 sample2 :sample1 1 :sample2 2
関連リンク
- Gradle本家ユーザガイド
2012年12月6日木曜日
App Storeで特定期間セールを行うための設定
iPhoneアプリなどのiOSアプリで、特定の期間セールを行う手順は、下記リンクの通り。
なお、Price Tier End Dateはセール価格がもとの価格に戻る日である点に注意。例えば、Price Tier End Dateを12/25に設定すると、12/25になった時点でもとの価格に戻る。12/25までセール価格にしたい場合は、Price Tier End Dateに12/26に設定する必要がある。
また、タイムゾーンについては確かな情報がないが、iTunes ConnectのSales Reportに適用されるタイムゾーンから判断して、ある程度は考慮される模様。
なお、Price Tier End Dateはセール価格がもとの価格に戻る日である点に注意。例えば、Price Tier End Dateを12/25に設定すると、12/25になった時点でもとの価格に戻る。12/25までセール価格にしたい場合は、Price Tier End Dateに12/26に設定する必要がある。
また、タイムゾーンについては確かな情報がないが、iTunes ConnectのSales Reportに適用されるタイムゾーンから判断して、ある程度は考慮される模様。
関連リンク
2012年12月5日水曜日
Gradle Effective Implementation Guide – Chapter 11
以下、 Gradle Effective Implementation Guideの11章についての読書メモ。
GradleとCIツールの連携方法について記述。対象のツールは、Jenkins, JetBrains TeamCity およびAtlassian Bambooとなっているが、Jenkinsしか知らないので、Jenkinsの節のみを読む。
JenkinsのGradle Pluginを使い、Gitなどのソースコード管理システムから取得したプロジェクトのビルドスクリプトを実行する手順についての説明。記述は丁寧でわかりやすいが、内容的にはそれ以上でもそれ以下でもない。
Jenkins以外のツールについてもざっと眺めてみたが、記述レベルに変わりはなさそう。
GradleとCIツールの連携方法について記述。対象のツールは、Jenkins, JetBrains TeamCity およびAtlassian Bambooとなっているが、Jenkinsしか知らないので、Jenkinsの節のみを読む。
JenkinsのGradle Pluginを使い、Gitなどのソースコード管理システムから取得したプロジェクトのビルドスクリプトを実行する手順についての説明。記述は丁寧でわかりやすいが、内容的にはそれ以上でもそれ以下でもない。
Jenkins以外のツールについてもざっと眺めてみたが、記述レベルに変わりはなさそう。
2012年12月4日火曜日
EclipseからGistを登録する
下記リンクを参考に、GitHub Mylyn connector for Eclipseを使って、EclipseのエディタからGistを登録してみました。
具体的には、Eclipseのエディタで任意のテキストを選択し、右クリック後に、「GitHub」-「Create Public Gist」(または「Create Private Gist」)を選択すると、選択中のテキストがGistに登録されます。登録したGistは、Eclipse上ではMylynのタスクとして保存可能です。
Mylynを使ったことがないせいもあり、個人的にはGistをMylynのタスクとして扱うメリットが今ひとつピンときませんでした。また、ポスト時にdescriptionを指定できないのも不満です(タスクのdescriptionを修正してSubmitすることで更新は出来ますが、手間はかえって増えてしまいます)。ただ、スニペットを手軽にGistに登録できるのは確かなので、用途に合えば使ってみるのもよいかもしれません。
なお、現状では、Gistに保存したスニペットを利用するためのユースケースは想定されていないようです(この用途には、Sublime Text 2が良さそうです)。
具体的には、Eclipseのエディタで任意のテキストを選択し、右クリック後に、「GitHub」-「Create Public Gist」(または「Create Private Gist」)を選択すると、選択中のテキストがGistに登録されます。登録したGistは、Eclipse上ではMylynのタスクとして保存可能です。
Mylynを使ったことがないせいもあり、個人的にはGistをMylynのタスクとして扱うメリットが今ひとつピンときませんでした。また、ポスト時にdescriptionを指定できないのも不満です(タスクのdescriptionを修正してSubmitすることで更新は出来ますが、手間はかえって増えてしまいます)。ただ、スニペットを手軽にGistに登録できるのは確かなので、用途に合えば使ってみるのもよいかもしれません。
なお、現状では、Gistに保存したスニペットを利用するためのユースケースは想定されていないようです(この用途には、Sublime Text 2が良さそうです)。
2012年12月3日月曜日
GradleでJDBCドライバを使用してデータベースを操作する
Gradleで、JDBCドライバを使用してデータベースを操作する方法は、以下の通り。
ビルドスクリプトでJDBCドライバを使用するには、Groovyのクラスローダーにドライバのクラスをロードしておく必要があるらしい。上記のビルドスクリプトを実行した結果は、以下の通り。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import groovy.sql.Sql | |
apply plugin: 'groovy' | |
apply plugin: 'eclipse' | |
apply plugin: 'maven' | |
repositories { mavenCentral() } | |
configurations { driver } | |
dependencies { driver 'org.xerial:sqlite-jdbc:3.7.2' } | |
URLClassLoader loader = GroovyObject.class.classLoader | |
configurations.driver.each {File file -> | |
loader.addURL(file.toURL()) | |
} | |
task jdbcSample << { | |
def sql = Sql.newInstance( 'jdbc:sqlite:test.db' | |
, '' | |
, '' | |
, 'org.sqlite.JDBC' ) | |
sql.execute '''\ | |
CREATE TABLE IF NOT EXISTS person( | |
id int primary key | |
,name varchar | |
) | |
''' | |
sql.execute '''\ | |
INSERT OR IGNORE INTO person VALUES( | |
1 | |
,'test' | |
) | |
''' | |
sql.eachRow( 'select * from person' ) { | |
int id = it.id | |
println "id:$id name:$it.name" | |
} | |
sql.close() | |
} |
ビルドスクリプトでJDBCドライバを使用するには、Groovyのクラスローダーにドライバのクラスをロードしておく必要があるらしい。上記のビルドスクリプトを実行した結果は、以下の通り。
$ gradle -q jdbcSample id:1 name:test
関連リンク
登録:
投稿 (Atom)