Skip to content

Simple calculator app in Skip

Notifications You must be signed in to change notification settings

skiptools/skipapp-calculatrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Calculatrix

This is a Skip dual-platform app project. It was initially created with the command:

skip init --transpiled-app --appid=skip.Calculatrix skipapp-calculatrix Calculatrix CalculatrixModel

This repository is an experiment with using LLM tools to help build a Skip app, using the following prompt:

Take this empty shell of a Skip app project and implement a full-featured calculator app using SwiftUI. The app should use pure SwiftUI and must not use any UIKit. The SwiftUI used should be compatible with Skip and its transpilation to Jetpack Compose for Android. The app should be split between the Calculatrix module containing the SwiftUI and user interface and the CalculatrixModel module that should contain the logic and observables used by the app. Test cases for the CalculatrixModel should be added to Tests/CalculatrixModelTests/CalculatrixModelTests.swift in the XCTest format. The tests can be validated by running "skip test" and the app can be validated with Skip by running the command: "skip export". Full documentation for Skip is available at https://skip.dev/docs/.

Screenshots

Calculatrix iPhone simple portrait calcuator Calculatrix Android simple portrait calcuator Calculatrix iPhone scientific landscape calcuator Calculatrix Android scientific landscape calcuator

Building

This project is both a stand-alone Swift Package Manager module, as well as an Xcode project that builds and translates the project into a Kotlin Gradle project for Android using the skipstone plugin.

Building the module requires that Skip be installed using Homebrew with brew install skiptools/skip/skip.

This will also install the necessary Skip prerequisites: Kotlin, Gradle, and the Android build tools.

Installation prerequisites can be confirmed by running skip checkup. The project can be validated with skip verify.

Running

Xcode and Android Studio must be downloaded and installed in order to run the app in the iOS simulator / Android emulator. An Android emulator must already be running, which can be launched from Android Studio's Device Manager.

The project can be opened and run in Xcode from Project.xcworkspace, which also enabled parallel development of any Skip libary dependencies.

To run both the Swift and Kotlin apps simultaneously, launch the "Calculatrix App" target from Xcode. A build phases runs the "Launch Android APK" script that will deploy the Skip app to a running Android emulator or connected device. Logging output for the iOS app can be viewed in the Xcode console, and in Android Studio's logcat tab for the transpiled Kotlin app, or using adb logcat from a terminal.

Testing

The module can be tested using the standard swift test command or by running the test target for the macOS destination in Xcode, which will run the Swift tests as well as the transpiled Kotlin JUnit tests in the Robolectric Android simulation environment.

Parity testing can be performed with skip test, which will output a table of the test results for both platforms.

About

Simple calculator app in Skip

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published