Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bsorrentino/plantuml4ipad
An AI powered PlantUML Editor App for iPad
https://github.com/bsorrentino/plantuml4ipad
ai ipad openai-api openai-vision plantuml swiftui
Last synced: 3 months ago
JSON representation
An AI powered PlantUML Editor App for iPad
- Host: GitHub
- URL: https://github.com/bsorrentino/plantuml4ipad
- Owner: bsorrentino
- License: mit
- Created: 2022-08-03T16:27:02.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-17T15:20:46.000Z (3 months ago)
- Last Synced: 2024-10-19T19:38:20.294Z (3 months ago)
- Topics: ai, ipad, openai-api, openai-vision, plantuml, swiftui
- Language: JavaScript
- Homepage:
- Size: 212 MB
- Stars: 11
- Watchers: 4
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# PlantUML4iPad
## Description
> Native PlantUML Editor thought for iPad providing a improved user experience to use this popular "diagram-as-code" tool
This is a native PlantUML editor app for iPad. It allows using iPad to draw diagrams in effective way. It includes use of AI to helping drawing process. take note that to enable AI features you **MUST HAVE** a valid "OpenAI API key" i.e. OpenAI Paid Account
_Promotional Text_ 🤞
> This is a (first 🤔) native Plantuml Editor App for iPad with AI capabilities. Developed by a Plantuml lover to enjoy the writing of diagrams on this excellent device
## Features 🦾
1. Create,Update,Delete plantUML Documents
2. Share Documents with iCLoud
3. OpenAI integration
> **You MUST HAVE a valid [OpenAI] API KEY (i.e. Paid Account)** to use this feature. Such secrets will be stored in device's keychain
* Drawing
* Draw Diagram using either Pencil or Fingers.
* Processing hand drawn diagram through [OpenAI Vision API] (_gpt-4o_) to automatically genearte plantUML script.
* PlantUML script will include alse a legend with detailed description of drawing.
* Prompt
* Prompt your diagram request in natural language
* Undo Prompt
* Prompt's History
* choose AI Model (_gpt-3.5-turbo or gpt-4_)
4. Text Editor
* Auto save over modification
* Provide **syntax highlighting** and auto completion **diagram snippets** through [ace] editor
5. Diagram Preview
> Preview relies on [PlantUML online server] so it requires internet connection
* Built in cache management
* Scale to fit
* Share Image (AirDrop, iCloud, Other App, ...)**Take a Note:**
* **Release 3.2**
> add detection of [use-case diagram][usecase] from drawing.* **Release 3.1**
> From release `3.1` the deprecated model `gpt-4-vision-preview` has been replaced by `gpt-4o`.* **Release 3.0**
> From release `3.0` it is possible also hand drawn diagram using either Pencil or Fingers.* **Release 2.0**
> From release `2.0` the PlantUML Custom Keyboard has been disabled because not compatible with the new editor based on [ace]## App Store
See the App on [App Store](https://apps.apple.com/us/app/plantuml-app/id6444164984) 👀
## References
Below all references that helped to develop such App
* [Get a binding from an environment value in SwiftUI](https://stackoverflow.com/q/69731360/521197)
* [How can I set an image tint in SwiftUI?](https://stackoverflow.com/a/73289182/521197)
* [Get the current first responder without using a private API](https://stackoverflow.com/a/1823360/521197)
* [Split Picture in tiles and put in array](https://stackoverflow.com/a/73628496/521197)
* [SwiftUI exporting or sharing files](https://stackoverflow.com/a/56828100/521197)
* [Customizing Toggle with ToggleStyle](https://www.hackingwithswift.com/quick-start/swiftui/customizing-toggle-with-togglestyle)
* [How to remove all the spaces in a String?](https://stackoverflow.com/a/34940120/521197)
* [Perform a full swipe left action in UI Tests?](https://stackoverflow.com/a/51639973)
* [Managing Focus in SwiftUI List Views](https://peterfriese.dev/posts/swiftui-list-focus/)
* [How to access back bar button item in universal way under UITests in Xcode?](https://stackoverflow.com/a/38595332/521197)
* [Regular Expression Capture Groups in Swift](https://www.advancedswift.com/regex-capture-groups/)
* [iOS UI testing: element descendants](https://pgu.dev/2020/12/20/ios-ui-tests-element-descendants.html)
* [SwiftUI Let View disappear automatically](https://stackoverflow.com/a/60820491/521197)
* [How to scroll a Form to a specific UI element in SwiftUI](https://stackoverflow.com/a/65777080/521197)
* [Conditional modifier](https://designcode.io/swiftui-handbook-conditional-modifier)
* [How to Display Web Page Using WKWebView](https://www.appcoda.com/swiftui-wkwebview/)
* [Document based app shows 2 back chevrons on iPad](https://stackoverflow.com/a/74245034/521197)
* [Compressing and Decompressing Data with Buffer Compression](https://developer.apple.com/documentation/accelerate/compressing_and_decompressing_data_with_buffer_compression)
* [How to detect device rotation](https://www.hackingwithswift.com/quick-start/swiftui/how-to-detect-device-rotation)
* [How to convert a SwiftUI view to an image](https://www.hackingwithswift.com/quick-start/swiftui/how-to-convert-a-swiftui-view-to-an-image)
* [Button border with corner radius in Swift UI](https://stackoverflow.com/a/62544642/521197)
* [SwiftUI: Forcing an Update](https://stackoverflow.com/a/65095862/521197)
* [How can I add caching to AsyncImage](https://stackoverflow.com/a/70916651/521197)
* [Open-source themes for PlantUML diagrams](https://bschwarz.github.io/puml-themes/gallery.html)
* [iOS Localization and Internationalization Testing with XCUITest](https://medium.com/xcblog/ios-localization-and-internationalization-testing-with-xcuitest-495747a74775)
* [How to percent encode a URL String](https://useyourloaf.com/blog/how-to-percent-encode-a-url-string/)
* [Sccess TextEditor from XCUIApplication](https://stackoverflow.com/a/69522578/521197)[openai]: https://openai.com
[ace]: https://ace.c9.io
[OpenAI Vision API]: https://platform.openai.com/docs/guides/vision
[PlantUML online server]: https://plantuml.com/server
[usecase]: https://plantuml.com/usecase