Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

現在インストールできません

adhocで現在インストールできませんとでる。
プロビジョニング等を調べたが正常、クリーンもだめだった。
バイスのログを辿ったところ、symblinkでエラーになっており、
ipaファイルの中身を調べたところコードシグネチャーのファイル内に
PCのXCodeのderivedDataを指しているところをみつけた。DerivedDataの削除をして再アーカイブしたところ無事に通った。

ゲーデル数

形式言語における文字列(もしくは数学的オブジェクト)に数を対応させること。そうすれば数の理論で扱える。

enc([x1,x2,..xn]) = 2^x1 3^x2 5^x3 ...pn^xn

素因数分解の一意性があるので1対1(nが無限だとどうなるの?)

そうすると推論が関数化される。

文字の抽出等

        case writeError          | 書き込みエラー |

等を

        case writeError = "writeError" // 書き込みエラー 

と書き換えたかった。

正規表現

case\s([a-zA-z]*)\s*\|(.*)\|

case $1 = \"$1\" //$2

におきかえるとうまくいった。

Javaプロジェクト

第7章 Javaクイックスタート

Gradleのプラグインを使ったり書いたりする。

# javaプラグイン

apply plugin: 'java'

ここでファイル構成は

build.gradle
src/main/java/
src/main/resource/
src/test/java/
src/test/resource/

としておく。

main.javaの下にhello.javaを置く。

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の基本

プロジェクトとタスク
一つのビルドは一つ以上のプロジェクトを使って行われる。
一つのプロジェクトは一つ以上のタスクから構成されている。

Codable

参照
Codableについて色々まとめた[Swift4] - Qiita
Codableで色々なJSONに対応する - Qiita
Swift4のCodableでフラットなJSONからネストしたオブジェクトにデコードする - Qiita
Codableのinit(from:)をどう書くか / 20170621 #wwdc_ebisu // Speaker Deck
Swift 4でJSONの扱い - Galapagos Engineering Blog


使ってみた例

gist4d39fed7efb96d0cc49e873f3595cd0b