├── .gitignore ├── LICENSE ├── README.md ├── address ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prt2121 │ │ │ └── address │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prt2121 │ │ │ └── address │ │ │ └── AddressBookActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── address │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── address │ │ ├── AddressBook.kt │ │ └── MyViewController.kt └── settings.gradle ├── contacts ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prat │ │ │ └── tablesearch │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prat │ │ │ └── tablesearch │ │ │ └── TableSearchActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── tablesearch │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ ├── Main.storyboard │ │ │ └── TableCell.xib │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── tablesearch │ │ ├── BaseTableViewController.kt │ │ ├── DetailViewController.kt │ │ ├── MainTableViewController.kt │ │ ├── ResultsTableViewController.kt │ │ └── TableSearch.kt └── settings.gradle ├── current-address ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prt2121 │ │ │ └── currentaddress │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prt2121 │ │ │ └── currentaddress │ │ │ └── CurrentAddressActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── currentaddress │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── currentaddress │ │ ├── CurrentAddress.kt │ │ ├── MapViewController.kt │ │ └── PlacemarkViewController.kt └── settings.gradle ├── hello-ios ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prt2121 │ │ │ └── kitty │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prt2121 │ │ │ └── kitty │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── kitty │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── kitty │ │ ├── Main.kt │ │ ├── MyViewController.kt │ │ └── PhoneTranslator.kt └── settings.gradle ├── hello-multiscreen ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prt2121 │ │ │ └── kitty │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prt2121 │ │ │ └── kitty │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── kitty │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prt2121 │ │ └── kitty │ │ ├── CallHistoryController.kt │ │ ├── Main.kt │ │ ├── MyViewController.kt │ │ └── PhoneTranslator.kt └── settings.gradle ├── message ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prat │ │ │ └── message │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prat │ │ │ └── message │ │ │ └── MessageActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── message │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ ├── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ ├── Contents.json │ │ │ │ ├── Icon-60@2x.png │ │ │ │ ├── Icon-60@3x.png │ │ │ │ ├── Icon-76.png │ │ │ │ ├── Icon-76@2x.png │ │ │ │ ├── Icon-Small-40.png │ │ │ │ ├── Icon-Small-40@2x.png │ │ │ │ ├── Icon-Small-40@3x.png │ │ │ │ ├── Icon-Small.png │ │ │ │ ├── Icon-Small@2x.png │ │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ │ ├── Contents.json │ │ │ │ ├── Default-568h@2x~iphone.png │ │ │ │ ├── Default-667h@2x~iphone.png │ │ │ │ ├── Default-736h@3x~iphone.png │ │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ │ ├── Default-Landscape~ipad.png │ │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ │ ├── Default-Portrait~ipad.png │ │ │ │ └── Default@2x~iphone.png │ │ └── rainy.jpg │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── message │ │ ├── Message.kt │ │ └── MessageComposerViewController.kt └── settings.gradle ├── rest-client ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prat │ │ │ └── restclient │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prat │ │ │ └── restclient │ │ │ └── MainActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── restclient │ │ ├── CounterStore.kt │ │ ├── GitHubService.kt │ │ ├── Repo.kt │ │ └── WebService.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ └── Main.storyboard │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── restclient │ │ ├── Main.kt │ │ └── MyViewController.kt └── settings.gradle ├── tableSearch ├── android │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── prat │ │ │ └── tablesearch │ │ │ └── ApplicationTest.java │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── kotlin │ │ └── com │ │ │ └── prat │ │ │ └── tablesearch │ │ │ └── TableSearchActivity.kt │ │ └── res │ │ ├── layout │ │ └── activity_my.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ └── values │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── core │ ├── build.gradle │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── tablesearch │ │ └── CounterStore.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios │ ├── Info.plist.xml │ ├── build.gradle │ ├── resources │ │ ├── Base.lproj │ │ │ ├── Main.storyboard │ │ │ └── TableCell.xib │ │ └── Images.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-76.png │ │ │ ├── Icon-76@2x.png │ │ │ ├── Icon-Small-40.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ │ └── LaunchImage.launchimage │ │ │ ├── Contents.json │ │ │ ├── Default-568h@2x~iphone.png │ │ │ ├── Default-667h@2x~iphone.png │ │ │ ├── Default-736h@3x~iphone.png │ │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ │ ├── Default-Landscape@2x~ipad.png │ │ │ ├── Default-Landscape~ipad.png │ │ │ ├── Default-Portrait@2x~ipad.png │ │ │ ├── Default-Portrait~ipad.png │ │ │ └── Default@2x~iphone.png │ ├── robovm.properties │ ├── robovm.xml │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── prat │ │ └── tablesearch │ │ ├── APLBaseTableViewController.kt │ │ ├── APLDetailViewController.kt │ │ ├── APLMainTableViewController.kt │ │ ├── APLProduct.kt │ │ ├── APLResultsTableViewController.kt │ │ └── TableSearch.kt └── settings.gradle └── webview ├── android ├── build.gradle ├── proguard-rules.pro └── src │ ├── androidTest │ └── java │ │ └── com │ │ └── prat │ │ └── webview │ │ └── ApplicationTest.java │ └── main │ ├── AndroidManifest.xml │ ├── kotlin │ └── com │ │ └── prat │ │ └── webview │ │ └── WebviewActivity.kt │ └── res │ ├── layout │ └── activity_my.xml │ ├── mipmap-hdpi │ └── ic_launcher.png │ ├── mipmap-mdpi │ └── ic_launcher.png │ ├── mipmap-xhdpi │ └── ic_launcher.png │ ├── mipmap-xxhdpi │ └── ic_launcher.png │ └── values │ ├── strings.xml │ └── styles.xml ├── build.gradle ├── core ├── build.gradle └── src │ └── main │ └── kotlin │ └── com │ └── prat │ └── webview │ └── CounterStore.kt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── ios ├── Info.plist.xml ├── build.gradle ├── resources │ ├── Base.lproj │ │ └── Main.storyboard │ └── Images.xcassets │ │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-60@2x.png │ │ ├── Icon-60@3x.png │ │ ├── Icon-76.png │ │ ├── Icon-76@2x.png │ │ ├── Icon-Small-40.png │ │ ├── Icon-Small-40@2x.png │ │ ├── Icon-Small-40@3x.png │ │ ├── Icon-Small.png │ │ ├── Icon-Small@2x.png │ │ └── Icon-Small@3x.png │ │ └── LaunchImage.launchimage │ │ ├── Contents.json │ │ ├── Default-568h@2x~iphone.png │ │ ├── Default-667h@2x~iphone.png │ │ ├── Default-736h@3x~iphone.png │ │ ├── Default-Landscape-736h@3x~iphone.png │ │ ├── Default-Landscape@2x~ipad.png │ │ ├── Default-Landscape~ipad.png │ │ ├── Default-Portrait@2x~ipad.png │ │ ├── Default-Portrait~ipad.png │ │ └── Default@2x~iphone.png ├── robovm.properties ├── robovm.xml └── src │ └── main │ └── kotlin │ └── com │ └── prat │ └── webview │ ├── MyViewController.kt │ └── Web.kt └── settings.gradle /.gitignore: -------------------------------------------------------------------------------- 1 | .* 2 | target/ 3 | build/ 4 | pom.xml.tag 5 | pom.xml.releaseBackup 6 | pom.xml.next 7 | release.properties 8 | robovm-logs/ 9 | robovm-build/ 10 | *.iml 11 | .idea/ 12 | bin/ 13 | .classpath 14 | .project 15 | .settings/ 16 | local.properties 17 | xcshareddata/ 18 | xcuserdata/ 19 | 20 | .DS_Store 21 | .idea/shelf 22 | /android.tests.dependencies 23 | /confluence/target 24 | /dependencies 25 | /dist 26 | /gh-pages 27 | /ideaSDK 28 | /android-studio/sdk 29 | out 30 | tmp 31 | workspace.xml 32 | *.versionsBackup 33 | /idea/testData/debugger/tinyApp/classes* 34 | /jps-plugin/testData/kannotator 35 | 36 | *~ 37 | *.o 38 | *.iml 39 | a.out 40 | *.class 41 | .* 42 | /target/ 43 | /llvm/target.llvm/ 44 | /vm/binaries/ 45 | /vm/target/ 46 | /compiler/target/ 47 | /llvm/target/ 48 | /libimobiledevice/target/ 49 | /rt/target/ 50 | /cacerts/target/ 51 | /cacerts/full/target/ 52 | /objc/target/ 53 | /cocoatouch/target/ 54 | /eclipse/target/ 55 | /eclipse/ui/target/ 56 | /eclipse/feature/target/ 57 | /eclipse/update-site/target/ 58 | /dist/target/ 59 | /dist/compiler/target/ 60 | /dist/package/target/ 61 | /tests/dalvik/robovm*.env 62 | /tests/libcore/target/ 63 | /tests/robovm/target/ 64 | /tests/drlvm/robovm-vts.env 65 | /tests/drlvm-vts-bundle/ 66 | /tests/libcore/sqliteTest*.db 67 | /eclipse/ui/lib/ 68 | /tmp/ 69 | !/tests/robovm/src/test/resources/META-INF/**/*.o 70 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kotlin-ios 2 | Playground: iOS app written in Kotlin 3 | -------------------------------------------------------------------------------- /address/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | jcenter() 4 | mavenCentral() 5 | } 6 | dependencies { 7 | classpath 'com.android.tools.build:gradle:1.3.0' 8 | classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" 9 | } 10 | } 11 | 12 | plugins { 13 | id "me.tatarka.retrolambda" version "3.2.2" 14 | } 15 | apply plugin: 'com.android.application' 16 | apply plugin: 'kotlin-android' 17 | 18 | repositories { 19 | jcenter() 20 | mavenCentral() 21 | } 22 | 23 | android { 24 | compileSdkVersion 23 25 | buildToolsVersion "23.0.1" 26 | 27 | sourceSets { 28 | main.java.srcDirs += 'src/main/kotlin' 29 | } 30 | 31 | defaultConfig { 32 | applicationId "com.mycompany.fortune.android" 33 | minSdkVersion 9 34 | targetSdkVersion 23 35 | versionCode 1 36 | versionName "1.0" 37 | } 38 | 39 | compileOptions { 40 | sourceCompatibility JavaVersion.VERSION_1_8 41 | targetCompatibility JavaVersion.VERSION_1_8 42 | } 43 | buildTypes { 44 | release { 45 | minifyEnabled false 46 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 47 | } 48 | } 49 | } 50 | 51 | dependencies { 52 | compile fileTree(dir: 'libs', include: ['*.jar']) 53 | compile 'com.android.support:appcompat-v7:23+' 54 | compile 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version' 55 | compile project(':core') 56 | } 57 | -------------------------------------------------------------------------------- /address/android/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.1.2/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /address/android/src/androidTest/java/com/prt2121/address/ApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.prt2121.address; 2 | 3 | import android.app.Application; 4 | import android.test.ApplicationTestCase; 5 | 6 | /** 7 | * Testing Fundamentals 8 | */ 9 | public class ApplicationTest extends ApplicationTestCase { 10 | public ApplicationTest() { 11 | super(Application.class); 12 | } 13 | } -------------------------------------------------------------------------------- /address/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /address/android/src/main/kotlin/com/prt2121/address/AddressBookActivity.kt: -------------------------------------------------------------------------------- 1 | package com.prt2121.address 2 | 3 | import android.app.Activity 4 | import android.os.Bundle 5 | import android.widget.Button 6 | import android.widget.TextView 7 | 8 | class AddressBookActivity : Activity() { 9 | private val counterStore = CounterStore() 10 | 11 | override fun onCreate(savedInstanceState: Bundle?) { 12 | super.onCreate(savedInstanceState) 13 | setContentView(R.layout.activity_my) 14 | 15 | val counterTextView = findViewById(R.id.counterTextView) as TextView 16 | val counterButton = findViewById(R.id.counterButton) as Button 17 | 18 | counterButton.setOnClickListener { view -> 19 | counterStore.add(1) 20 | counterTextView.text = "Click Nr. " + counterStore.get() 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /address/android/src/main/res/layout/activity_my.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 16 | 17 |