DevToys for iPad - a SwiftUI reimplementation of DevToys, a Swiss Army Knife for developers, for iPadOS

Overview

DevToys for iPad

Swift Swift Playgrounds Platform License

This app is a SwiftUI reimplementation of DevToys, a Swiss Army Knife for developers, for iPadOS.

screenshot

Features

  • Converters
    • JSON <> YAML
    • Number Base
  • Encoders / Decoders
    • HTML
    • URL
    • Base64
    • GZip
    • JWT Decoder
  • Formatters
    • JSON
    • SQL
    • XML
  • Generators
    • Hash (MD5, SHA1, SHA256, SHA512)
    • UUID
      • UUID v1
      • UUID v4
    • Lorem Ipsum
    • Checksum
  • Text
    • Inspector & Case Converter
    • Regex Tester
    • Text Comparer
    • Markdown Preview
  • Graphic
    • Color Blindness Simulator
    • PNG / JPEG Compressor
    • Image Converter

Target platforms

  • iPadOS 15.2 or later
  • iOS 15.2 or later

Build requirements

  • Swift Playgrounds 4.0 or later (iPadOS 15.2 or later)
  • Xcode 13.2 or later (macOS 11.3 or later)

Get Started

  1. Clone this repository
  2. Open DevToys.swiftpm with Swift Playgrounds
  3. Run
Comments
  • Once I click on any item in the sidebar, the sidebar doesn't close after that

    Once I click on any item in the sidebar, the sidebar doesn't close after that

    When the horizontal size class is .compact, clicking a tool from the sidebar closes the sidebar the first time, but leaves it open the second and subsequent times. That could be a SwiftUI issue.

    https://user-images.githubusercontent.com/601636/167292949-69d897ef-5c4f-4444-b3b2-ed21ac35781a.MOV

    iPad Pro 12.9" 5th generation with Magic Keyboard (iPadOS 15.5 DB 4)

    bug wontfix 
    opened by kkk669 2
  • Need to click the back button twice to show the sidebar when opening a new window whose horizontal size class is `.compact`

    Need to click the back button twice to show the sidebar when opening a new window whose horizontal size class is `.compact`

    Steps to reproduce

    1. Open DevToys for iPad
    2. Right-click the sidebar item
    3. Click "Open in New Window" on the context menu
    4. Click the back button on the top left corner of the new window

    Expected behaviors

    The sidebar will open.

    Actual behaviors

    The first click does nothing, and the second click opens the sidebar.

    Video

    https://user-images.githubusercontent.com/601636/167292188-d5078213-858f-47a0-b416-b09920fcf883.MOV

    iPad Pro 12.9" 5th generation with Magic Keyboard (iPadOS 15.5 DB 4)

    bug 
    opened by kkk669 2
  • AllToolsView content doesn't switch to search results when searching once I click the

    AllToolsView content doesn't switch to search results when searching once I click the "All tools" row in the sidebar

    Steps to reproduce

    1. Open DevToys for iPad
    2. Click the "All tools" row on the sidebar
    3. Swipe down the sidebar to show the search field
    4. Focus the search field and enter text into it

    Expected behaviors

    The title of the right column will be "Search results" and will display the search results instead of all tools.

    Actual behaviors

    The title won't change and all tools will remain visible.

    Video

    https://user-images.githubusercontent.com/601636/167291557-ca403425-43c8-4d07-b77d-b911c6e44988.MOV

    iPad Pro 12.9" 5th generation with Magic Keyboard (iPadOS 15.5 DB 4)

    bug 
    opened by kkk669 1
  • Add a way to open a specific tool in a new window

    Add a way to open a specific tool in a new window

    Triggers to open a new window currently being considered:

    1. The context menu of items on the sidebar
    2. Drag and drop a sidebar item
    3. The context menu of items of AllToolsView
    4. Drag and drop an item of AllToolsView
    enhancement 
    opened by kkk669 1
  • Sync search queries between on Sidebar and on AllToolsView

    Sync search queries between on Sidebar and on AllToolsView

    Currently, .searchable modifiers are attached to both Sidebar and AllToolsView to support both iPhone (single column) and iPad (2 columns). However, the search queries for both are independent. This is inconvenient, so I am going to change it so that they are synchronized.

    enhancement 
    opened by kkk669 0
  • Migrate to new navigation types

    Migrate to new navigation types

    I replaced all NavigationViews with NavigationSplitView or NavigationStack. Luckily, I found that this fixes #23 too.

    Reference: https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types

    This PR requires #27.

    enhancement 
    opened by kkk669 0
  • Add @MainActor to every ViewState

    Add @MainActor to every ViewState

    *ViewStates should have a @MainActor attribute, but in Swift 5.6 it was a little bit difficult to do so, and this has been resolved in Swift 5.7. Therefore, this change was made.

    This PR requires #27.

    enhancement 
    opened by kkk669 0
  • Fix TextEditor's background

    Fix TextEditor's background

    In iOS 16 and iPadOS 16, UITextView.appearance().backgroundColor = .clear doesn't work for clearing the background color of TextEditor anymore. But instead, a dedicated API for that has been added, so I used it.

    This PR requires #27.

    bug 
    opened by kkk669 0
  • Swift Playgrounds 4.2

    Swift Playgrounds 4.2

    • Fixed compiler flag for Swift 5.7
    • Fixed error on Swift 5.7
    • Bumped swift-tools-version to 5.7
    • Raised the deployment target to iOS 16.0 and iPadOS 16.0
    opened by kkk669 0
  • Add support for multiple windows

    Add support for multiple windows

    fixes #7

    Changes:

    • Added support for scene state restoration
    • Added support for opening a tool in a new window by tapping the "Open in New Window" menu and using drag and drop

    https://user-images.githubusercontent.com/601636/167305127-50f160f6-8ed7-469f-a07b-8f11efbdbba8.MOV

    Note:

    These features don't work on Swift Playgrounds' app preview. To test them, there are two options:

    1. Use Xcode to install the app on the device
    2. Upload the app to TestFlight and install it on the device

    References:

    • https://www.michaelfcollins3.me/posts/2021/01/creating-multiple-scenes-in-a-swiftui-app/
    opened by kkk669 0
  • Use SwiftUI-Introspect

    Use SwiftUI-Introspect

    SwiftUI-Introspect is a little bit tricky, but the current workarounds (UITextView.appearance() and UITextField.appearance()) have side-effects on other screens. Thus, the former is better.

    opened by kkk669 0
  • State the open source licenses used by DevToys for iPad

    State the open source licenses used by DevToys for iPad

    DevToys for iPad depends on many open source packages, so I have to state their licenses somewhere.

    For now, I plan to summarize them in the acknowledgements in the settings app.

    opened by kkk669 0
Owner
Kenta Kubo
iPad power user.
Kenta Kubo
🎲 100% SwiftUI 2.0, classic 2048 game [SwiftUI 2.0, iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Swift 5.3].

swiftui-2048 If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo. ✍️ Abou

Astemir Eleev 174 Dec 17, 2022
small iOS & ipadOS application written in SwiftUI and Combine, that fetches twitter users and tweets using Twitter's api

HomeTwitter Small iOS & ipadOS application written in SwiftUI and Combine, that fetches twitter users and tweets using Twitter's api. This is just a s

Sorin Miroiu 1 May 13, 2022
A link tracker remover for iOS and iPadOS

Uni Uni is an application that removes tracking parameters from links shared on the web and swaps proprietary services with free and open source alter

Abhik Ahuja 1 Oct 24, 2021
A Safari Extension for iOS & iPadOS

Duplicator Duplicator is a Safari Extension for iOS and iPadOS that makes duplicating tabs much easier! Check it out on the App Store Privacy Policy ?

Ty Irvine 17 Nov 29, 2022
Mastodon and Twitter client for iOS, iPadOS & macOS

Note: Mamoot! is under heavy development and is obviously far from complete at this moment. We're currently looking for more people to work with us, s

null 13 Nov 22, 2022
EzNews - A simple and easy to use News app for iOS and iPadOS. It uses NewsAPI as its backend

EzNews This was my first proper Swift app. Its a news app made for iOS and iPadO

Arnav Singhal 4 Apr 30, 2022
Create a beautiful Onabording for your iOS/iPadOS apps in just a few minutes.

Create a beautiful Onabording for your iOS/iPadOS apps in just a few minutes.

Jem Alvarez 6 Sep 9, 2022
SwiftUI Jam 2021 - iPad Realtime Calculator

SwiftUI Jam 2021 - iPad Realtime Calculator A SwiftUI iPad calculator with realtime activity Features Addition, Subtraction, Multiplication, Division

Joel Sereno 3 Jan 13, 2022
A simple drawing app for iPad using SwiftUI

TinyDraw A small little drawing app fro iPad using SwiftUIs Canvas view. Implemented along the HWS+ live stream by Paul Hudson. Features Drawing lines

Philipp 6 Dec 14, 2022
In-app console and debug tools for iOS developers.

LocalConsole Welcome to LocalConsole! This Swift Package makes on-device debugging easy with a convenient PiP-style console that can display items in

Duraid Abdul 650 Jan 4, 2023
You can share and communicate with developers around the world through the Fabula app.

FabulaItemsProvider This is the source package for the Fabula project. You can share and communicate with developers around the world through the Fabu

jasu 231 Dec 31, 2022
ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Since Facebook introduced reactions in 2016, it became a standard in several applications as a way for users to interact with content. ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Jorge Ovalle 305 Oct 11, 2022
iCome Out is an open source project of an unofficial Pornub app for iPhone and iPad

iCome Out is an open source project of an unofficial Pornub app for iPhone and iPad, written in Swift with some cool features Getting Started Prerequi

Anon 3 Dec 1, 2022
iCloud Drive is Apple's essential connection between all your devices, Mac, iPhone, iPad, even your Windows PC.

iCloud Drive is Apple's essential connection between all your devices, Mac, iPhone, iPad, even your Windows PC.While the cost of storage seems expensive in comparison to other online storage services, its advantage is that it works natively across all your devices.

MindInventory 12 Jul 29, 2022
An application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient inventory tracking.

ChopChop ChopChop is an application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient in

Seow Alex 0 Dec 23, 2021
Swift Playgrounds 4 app created on the iPad

Spiro Swift Playgrounds 4 app created on the iPad^. ^ Xcode also used as explained below. ?? Screenshots ?? What is Spiro? An interactive animating sp

An Trinh 26 Jan 6, 2022
Daydreamer - A Figma viewer created in Swift Playgrounds for iPad

Daydreamer A native Figma client for iPad, created exclusively using Swift Playg

featherless 3 Feb 18, 2022
Reading List is an iOS app for iPhone and iPad which helps users track and catalog the books they read

Reading List Reading List is an iOS app for iPhone and iPad which helps users track and catalog the books they read. Reading List v2 As of version 2.0

Andrew Bennet 281 Jan 15, 2022
OctoPod is a free open source iPhone/iPad app for OctoPrint

OctoPod OctoPod is a free open source iPhone/iPad app for OctoPrint. Build Instructions Download Xcode You will need to install Swift 5.0 and Xcode 11

Gaston Dombiak 193 Dec 30, 2022