an onboarding app built in SwiftUI

Related tags

Miscellaneous hello
Overview

hello

hello is application onboarding macOS devices.

Warning

DO NOT USE THIS IN PRODUCTION! IT IS NOT READY AND MAY NEVER BE READY!

OS support

macOS Big Sur 11.0 and higher

Examples of the User Interface

Light

Dark

Comments
  • [SwiftUI] No symbol named 'gear.circle' found

    [SwiftUI] No symbol named 'gear.circle' found

    Hi Erik,

    i discover this issue on Big Sur during my testing Hello 0.2.2 . Screenshot 2021-07-22 at 17 45 29

    2021-07-22 18:46:22.523077+0200 hello[40018:764438] [SwiftUI] No symbol named 'gear.circle' found in system symbol set 2021-07-22 18:46:22.554990+0200 hello[40018:764438] [SwiftUI] No symbol named 'gear.circle' found in system symbol set 2021-07-22 18:46:25.067170+0200 hello[40018:764438] [SwiftUI] No symbol named 'gear.circle' found in system symbol set 2021-07-22 18:46:25.166747+0200 hello[40018:764438] [SwiftUI] No symbol named 'circle.dashed.inset.filled' found in system symbol set

    opened by trekkim 8
  • Add default symbol if gear.circle.fill is mising

    Add default symbol if gear.circle.fill is mising

    This isn't exactly what you mentioned, but I had issues with that pattern. This one is more lines and slightly more messy, but it seems to work:

    When gear.circle.filled is present: Screen Shot 2021-10-17 at 4 53 48 PM

    And when its not (I set it to nil manually) :

    Screen Shot 2021-10-17 at 4 53 32 PM
    opened by natewalck 2
  • Compatibility Questions

    Compatibility Questions

    macOS version 11.4 Xcode version: 12.5

    The project at '/hello-main/hello.xcodeproj' cannot be opened because it is in a future Xcode project file format. Adjust the project format using a compatible version of Xcode to allow it to be opened by this version of Xcode.

    Editing /hello-main/hello.xcodeproj/project.pbxproj (objectVersion) manually from 55 to 54, allows me to open it, but some of the Beta tools and commands are not available. A few Cannot find 'AsyncImage' in scope errors and Cannot infer contextual base in reference to member 'link' errors. https://developer.apple.com/documentation/swiftui/asyncimage?changes=_6 (AsyncImage view 10.12+ only?)

    Thus the macOS 10.12+ beta compatibility question.

    opened by danielnovello-pf 1
  • Hello Not closing after software has been installed

    Hello Not closing after software has been installed

    Good day

    I have added Managed Software Centre and after it being installed , the Hello app doesn't close How do get it to close after installation has completed ?

    Or instead of closing , open the last windows of the hello app

    opened by GenoMyb 0
  • Update build_hello.zsh

    Update build_hello.zsh

    You should be able to just pull the GITHUB_WORKSPACE environmental variable for https://github.com/erikng/hello/issues/9.

    I tested this here to verify that is accessible via a build script.

    opened by forvitinn 0
  • Add  CompanyLogoPath2

    Add CompanyLogoPath2

    Hi,

    I did little changes in code and add second path for Company Logo , Separate Welcome Screen & TopIcons.

    User can managed two logos over json.

    If that make sense and all good maybe will be good to implement into official release.

    MartinC

    opened by trekkim 0
  • Add Profiles function

    Add Profiles function

    Hi Erik,

    I was thinking about maybe mobileconfig check will be as well interesting. Here is some adjustment i did in your code, but still not working but maybe help, as i'm not really expert in Swift :-) PrimaryStatus:

    `// Stage Status (Dynamic Row) struct StageRow: View { @ObservedObject var settings: HelloHelper var installstage: DeviceStage @State var installedPkg = false @State var installedProfile = false var body: some View { HStack { // Icon // TODO: Figure out how to refresh AsyncImage if it fails to download the first time if #available(macOS 12.0, *) { AsyncImage(url: URL(string: installstage.iconPath)) { image in image.resizable() } placeholder: { Utils().randomPlaceholderColor() .opacity(0) } .aspectRatio(contentMode: .fit) .scaledToFit() .frame(width: 40, height: 40) } else { WebImage(url: URL(string: installstage.iconPath)) .renderingMode(.original) .resizable() .aspectRatio(contentMode: .fit) .scaledToFit() .frame(width: 40, height: 40) }

            // Stage Name
            Text(installstage.title)
                .font(.body)
                .fontWeight(.bold)
            
            Spacer()
            
            // Current Stage Status
            if Utils().pathExists(path: installstage.installedPath) || PkgInfo(receipt: installstage.installedPath) , Profile(receipt: installstage.installedPath) {
                Image(systemName: "checkmark.circle.fill")
                    .foregroundColor(.green)
                Text("Completed")
                    .frame(width: 75)
                    .onAppear {
                        settings.applicationState[installstage.id] = "installed"
                    }
            } else {
                // First stage - auto trigger installing
                if settings.applicationState.isEmpty && installstage.id == 1 {
                    ProgressView()
                        .progressViewStyle(.circular)
                        .scaleEffect(0.4)
                    Text("Installing")
                        .frame(width: 75)
                        .onAppear {
                            settings.applicationState[installstage.id] = "installing"
                            settings.applicationInstalling = installstage.title
                            settings.applicationInstallingIconPath = installstage.iconPath
                        }
                // Stage has already sent its state - no need to resend
                } else if settings.applicationState[installstage.id] == "installing" {
                    ProgressView()
                        .progressViewStyle(.circular)
                        .scaleEffect(0.4)
                    Text("Installing")
                        .frame(width: 75)
                // Previous stage has completed - trigger installing
                } else if settings.applicationState[installstage.id-1] == "installed" {
                    ProgressView()
                        .progressViewStyle(.circular)
                        .scaleEffect(0.4)
                    Text("Installing")
                        .frame(width: 75)
                        .onAppear {
                            settings.applicationState[installstage.id] = "installing"
                            settings.applicationInstalling = installstage.title
                            settings.applicationInstallingIconPath = installstage.iconPath
                        }
                // Catchall for pending
                } else {
                    Image(systemName: "checkmark.circle.fill")
                        .foregroundColor(.secondary)
                    Text("Pending")
                        .frame(width: 75)
                        .onAppear {
                            settings.applicationState[installstage.id] = "pending"
                        }
                }
            }
        }
    }
    
    func PkgInfo(receipt: String) -> Bool {
        DispatchQueue.main.async {
            self.installedPkg = Utils().pkgInfo(receipt: receipt)
        }
        return self.installedPkg
    }
    func Profile(receipt: String) -> Bool {
        DispatchQueue.main.async {
            self.installedProfile = Utils().profiles(receipt: receipt)
        }
        return self.installedProfile
    }
    

    }`

    Utils:

    func profiles(receipt: String) -> Bool { let task = Process() task.launchPath = "/usr/bin/profiles" task.arguments = ["-P", receipt]

        let outputPipe = Pipe()
        let errorPipe = Pipe()
    
        task.standardOutput = outputPipe
        task.standardError = errorPipe
    
        do {
            try task.run()
        } catch {
            let msg = "Error processing profiles"
            print(msg)
            return false
        }
        
        task.waitUntilExit()
    
        if task.terminationStatus != 0 {
            return false
        } else {
            return true
        }
    
    }
    
    Screenshot 2021-07-23 at 15 06 33

    Thx

    opened by trekkim 0
  • Try to find a way to make the provisioning UX more visually fun

    Try to find a way to make the provisioning UX more visually fun

    A long provisioning workflow is just static text and some progress wheels. It's pretty boring.

    The UI should either be rethought out or use make better use of the top portion paragraph.

    opened by erikng 0
Releases(v.0.0.2.11012021222150)
  • v.0.0.2.11012021222150(Nov 1, 2021)

  • 0.0.2.2(Jun 17, 2021)

    The second version of hello.

    There is no documentation, but check out the the demo url

    You will want to take the com.github.erikng.hello.json file and place it in /var/tmp.

    alternatively you can do something like

    /Applications/hello.app/Contents/MacOS/hello -json-url file:///private/var/tmp/com.github.erikng.hello.json or /Applications/hello.app/Contents/MacOS/hello -json-url https://raw.githubusercontent.com/erikng/hello/main/demo/com.github.erikng.hello.json

    New features

    • Ability to reboot with restartStyle key in JSON
      • pass None, Notify or Immediate
    • Ability to pass either a file path or package receipt via the installedPath
      • Example: Either /Applications/Slack.app or com.tinyspeck.slackmacgap
    Source code(tar.gz)
    Source code(zip)
    hello-alpha-0.0.2.2.zip(1.09 MB)
  • 0.0.2.1(Jun 17, 2021)

    The second version of hello.

    There is no documentation, but check out the the demo url

    You will want to take the com.github.erikng.hello.json file and place it in /var/tmp.

    alternatively you can do something like

    /Applications/hello.app/Contents/MacOS/hello -json-url file:///private/var/tmp/com.github.erikng.hello.json or /Applications/hello.app/Contents/MacOS/hello -json-url https://raw.githubusercontent.com/erikng/hello/main/demo/com.github.erikng.hello.json

    Source code(tar.gz)
    Source code(zip)
    hello-alpha-0.0.2.1.zip(1.07 MB)
  • 0.0.1.1(Jun 12, 2021)

    The first version of hello.

    There is no documentation, but check out the com.github.erikng.hello.json file for ideas. You will want to place it in /var/tmp.

    alternatively you can do something like

    /Applications/hello.app/Contents/MacOS/hello -json-url file:///private/var/tmp/com.github.erikng.hello.json or /Applications/hello.app/Contents/MacOS/hello -json-url https:///somewhere.com/com.github.erikng.hello.json

    Source code(tar.gz)
    Source code(zip)
    hello-alpha-0.0.1.1.zip(403.92 KB)
Owner
Erik Gomez
Erik Gomez
How to develop an iOS 14 application with SwiftUI 2.0 framework. How to create an Onboarding Screen with Page Tab View

Ama-Fruits USER INTERFACE AND USER EXPERIENCE APP DESIGN How to develop an iOS 14 application with SwiftUI 2.0 framework. How to create an Onboarding

Noye Samuel 1 Dec 11, 2021
Wiggles-iOS - Beautiful Puppy adoption app built to Demonstrate the SwiftUI and MVVM Architecture

Wiggles ?? Beautiful Puppy adoption app built to Demonstrate the use of SwiftUI

Sameer Nawaz 186 Dec 18, 2022
Tofu - A simple Todo app built with SwiftUI, a REST API, and a local Realm cache

Tofu A simple Todo app built with SwiftUI, a REST API, and a local Realm cache.

Brianna Zamora 1 Feb 23, 2022
Home Assistant Native iOS Application built with SwiftUI for iOS 15+

Home Assistant - Native iOS SwiftUI Application Screenshots Disclaimer - Please read This application is mostly a not-working mockup written in SwiftU

Alessio Santoru 34 Dec 13, 2022
This was built during my bootcamp using SwiftUI, WebKit and an API from Hacker News

HackerNewsReader This was built during my bootcamp using SwiftUI, WebKit and an API from Hacker News. This was programmed from scratch with SwiftUI. I

Wilson Woodyard 2 Feb 25, 2022
Food Recipes App Built With Swift

Food Recipes Application This is my first IOS App. The first page is sign in and sign up page. I controll informations with regex in sign up page. If

Buse Köseoğlu 1 Dec 17, 2021
CurrencyConverter - Currency Converter App Built With Swift

CurrencyConverter Stack: Xcode 12.5.1 iOS 14.5 UIkit iOS deployment target: 13.0

Nikita Yarosh 2 Sep 4, 2022
A collection of Swift Tutorials built with Apple's DocC.

Swift Tutorials This is not a package, it's just a bunch of tutorials This project uses Apple's DocC (Documentation Compiler) to create a set of Swift

Swift Innovators Network 11 Aug 9, 2022
A web API client in Swift built using Async/Await

Web API Client A modern web API client in Swift built using Async/Await and Actors. let client = APIClient(host: "api.github.com") // Using the clien

Alexander Grebenyuk 741 Dec 30, 2022
A developer-focused Meetup clone built with React Native

Assemblies Where Developers Connect Assemblies is an open-source mobile app built with React Native which developers can use to connect through 'assem

Build React Native 360 Dec 7, 2022
GitHub in your pocket. Built with React Native

GitPoint GitHub in your pocket. Built with React Native. Table of Contents Introduction Features Feedback Contributors Build Process Backers Sponsors

GitPoint 4.6k Jan 1, 2023
Full featured multi arch/os debugger built on top of PyQt5 and frida

Dwarf A debugger for reverse engineers, crackers and security analyst. Or you can call it damn, why are raspberries so fluffy or yet, duck warriors ar

iGio90 1.1k Jan 8, 2023
AuroraEditor is a IDE built by the community, for the community, and written in Swift for the best native performance and feel for macOS.

AuroraEditor AuroraEditor is a IDE built by the community, for the community, and written in Swift for the best native performance and feel for macOS.

Aurora Editor 704 Jan 8, 2023
RMSUI - A Simple Swift MVVM architectured Rick & Morty UI app in order to practice SwiftUI & GraphQL

RMSUI A Simple Swift MVVM architectured "Rick & Morty UI" app ?? in order to pra

null 0 Jan 24, 2022
ProximitySensor - Property wrappers for using the Proximity Sensor from the SwiftUI app

ProximitySensor Property wrappers for using the Proximity Sensor from the SwiftU

null 2 Aug 20, 2022
DBZ-Legends - A SwiftUI based app for all the DBZ peeps out there

DBZ-Legends Just a simple UI based app for all the DBZ fans. You can tap on the

Sougato Roy 2 Apr 5, 2022
Dicee-SwiftUI - This app show random dicee every time the you make click in button roll

Dicee-SwiftUI This app show random dicee every time the you make click in button

Adriancys Jesus Villegas Toro 0 Feb 4, 2022
App programmed in Swift/SwiftUI for using Libre 1/2 blood glucose sensors.

Glucose Direct App Warning, This project is highly experimental. Please use this app with caution and extreme care. Do not mindlessly make decisions b

Reimar Metzen 86 Jan 2, 2023
Template repository for quickly creating boilerplate code for a SwiftUI macOS app.

Sidebar App This is a template repository for quickly creating boilerplate code for a SwiftUI macOS app. License This app is released into the public

apparata 22 Dec 18, 2022