Storyboardでモーダルの背景を半透明
iOS8以降かも
呼び出し元で2つチェック
呼び出し先はOverCurrentContext CoverVertical
そもそもモーダルでないと使えないので注意‥。
gradle wrapper
gradle wrapperでgradle環境をインストールしていない人向けにgradlewコマンドが使えるようになる。
Javaプロジェクト
Gradleのプラグインを使ったり書いたりする。
apply plugin: 'java'
ここでファイル構成は
build.gradle src/main/java/ src/main/resource/ src/test/java/ src/test/resource/
としておく。
public class hello { public static void main(String[] args){ System.out.println("Hello World!!"); } }
gradle buildを実行するとビルドできる。
buildフォルダが作られ、その中のlibsフォルダにhellojava.jarができる。tmpフォルダもできる。
他のタスクとして
1. clean
2. assemble jarは生成するがコンパイルはしない。
他のリポジトリ等の追加は
apply plugin: 'java' repositories { mavenCentral() }
jarファイルの公開はuploadArchives
ハローワールド
以下が詳しい。
Gradle User Guide
helloディレクトリにbuild.gradleファイルを作り以下を記述(Groovy)
task hello doLast { println "Hello, world!" }
コンソールで実行する。
> gradle hello
依存関係をつける。
task hello doLast { println "Hello, world!" } task hi(dependsOn: hello) { println "hi" }
これでgradle helloをすると、hiが実行された後にhelloが実行される。
5.times { x -> task "count_$x" doLast { println "number $x" } }
のように動的にタスクを定義して、これを
コンソールで実行する。
> gradle count_3
のように実行できる。
タスクは依存関係を追加できる。
5.times { x -> task "count_$x" doLast { println "number $x" } } count_3.dependsOn count_1, count_2
タスクはアクションを追加できる。
task hello doLast { println "Hello, world!" } hello.doFirst { println "addFirst!" } hello.doLast { println "addLast!" }
hogeタスクに拡張プロパティを定義(extを使う)、他のタスクでそれを使う。
task hoge { ext.fuga = "3" } task printHoge doLast { println hoge.fuga }
デフォルトタスクの設定、これでgradleとするとデフォルトのタスクが呼ばれる。
defaultTaskes 'hello', 'printHoge'
実行タスクにhogehogeタスクがあるかどうかで振る舞いをかえる。
task printVersion doLast { println "version = $version" } task hogehoge(dependsOn: 'printVersion') { println "do task hogehoge" } gradle.taskGraph.whenReady {taskGraph -> if (taskGraph.hasTask(hogehoge)) { version = '1.0hogehoge' } else { version = '1.0' } }
1. build.gradle タスクを定義する。プロジェクトを定義する。
2. gradle.propeties ビルドに使うプロパティを設定する。
3. settings.gradle プロジェクトが複数ある場合にどのプロジェクトを使うか
Gradleの基本
プロジェクトとタスク
一つのビルドは一つ以上のプロジェクトを使って行われる。
一つのプロジェクトは一つ以上のタスクから構成されている。
ビットフラグ
ビットフラグはOpsionSetを定義すると使える。
struct Hoge : OptionSet { let rawValue : Int static let a = Hoge(rawValue: 0b0001) static let b = Hoge(rawValue: 0b0010) static let c = Hoge(rawValue: 0b0100) static let all:Hoge = [.a, .b, .c] static let ab:Hoge = all.subtracting(.c) func isNonEmpty() -> Bool { return !self.isEmpty } func isIntersect(_ v:Hoge) -> Bool { return self.intersection(v).isNonEmpty() } }
アクティビティ図
フローチャート代わりに使える。
テンプレ的に以下
```plantuml title <size:18>Sample</size> (*) --> "A" if "State" then partition "PartA" --> [a] "B" as hoge end partition else -> [b] "C" --> "D" endif partition "PartA" { hoge --> ===fork=== ===fork=== --> "E" --> ===join=== ===fork=== --> "F" --> ===join=== ===join=== --> "G" } -->(*) note right : H ```
詳細は以下を参照
yohshiy.blog.fc2.com
最初
作る sqlite3設定
命令群
./bin/cake bake migration CreateProducts name:string description:text created modified ./bin/cake migrations migrate ./bin/cake bake seed Product ./bin/cake migrations seed ./bin/cake bake model Products ./bin/cake bake controller Products ./bin/cake bake template Products
sqlite3
.tables select description, modified, created from products;
ローカルで確認
./bin/cake server
http://localhost:8765/Products
UIを作ってみる
UIを書いてみた。あっているかどうかは不明。