{"id":18750134,"url":"https://github.com/mindfiredigital/mobilequicklaunchkit-ios","last_synced_at":"2025-07-16T03:36:38.893Z","repository":{"id":220962572,"uuid":"750224225","full_name":"mindfiredigital/MobileQuickLaunchKit-iOS","owner":"mindfiredigital","description":"\"MobileQuickLaunchKit\" is designed to reduce the time of common projects. This kit provides frameworks for login, signup, settings and other common features. Users/Developers can use this kit and quickly include these functionality in their projects. This kit also includes multiple themes.","archived":false,"fork":false,"pushed_at":"2024-04-12T11:31:28.000Z","size":6870,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-13T22:03:53.897Z","etag":null,"topics":["coding","developers","foss","ios","mindfire","mindfiredigital","mobileapp","react","react-native","typescript"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mindfiredigital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-30T08:22:11.000Z","updated_at":"2025-04-26T09:08:59.000Z","dependencies_parsed_at":"2024-03-05T07:51:44.786Z","dependency_job_id":"79eaa3a9-38dc-4d32-9bd6-866495b49af9","html_url":"https://github.com/mindfiredigital/MobileQuickLaunchKit-iOS","commit_stats":null,"previous_names":["mindfiredigital/mobilequicklaunchkit-ios"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mindfiredigital/MobileQuickLaunchKit-iOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2FMobileQuickLaunchKit-iOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2FMobileQuickLaunchKit-iOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2FMobileQuickLaunchKit-iOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2FMobileQuickLaunchKit-iOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindfiredigital","download_url":"https://codeload.github.com/mindfiredigital/MobileQuickLaunchKit-iOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindfiredigital%2FMobileQuickLaunchKit-iOS/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265479604,"owners_count":23773571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coding","developers","foss","ios","mindfire","mindfiredigital","mobileapp","react","react-native","typescript"],"created_at":"2024-11-07T17:10:29.095Z","updated_at":"2025-07-16T03:36:38.873Z","avatar_url":"https://github.com/mindfiredigital.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MobileQuickLaunchKit Documentation\n\n\u003cimg alt=\"feature-image\" src=\"./docs/screenShots/MobileQuickLaunchKit-iOS.jpg\" /\u003e\n\n## Overview\n\nIntroducing MobileQuickLaunchKit, a powerful SwiftUI package designed to elevate your app development experience by seamlessly integrating essential features. It has dependencies with on separate packages: MQLCore and MQLCoreUI. With a focus on enhancing user engagement and customization, MobileQuickLaunchKit offers a robust set of functionalities, including a set of modules.\n\n## Table of contents\n\n1. [Modules](./Modules.md)\n2. [Prerequisites](#prerequisites)\n3. [Installation](#installation)\n4. [Usage](#usage)\n5. [Mockoon Setup Instructions](./docs/mockoon_setup.md)\n6. [API Setup](./docs/apis_setup.md)\n7. [Manual Installation](./docs/manual_installation_setup.md)\n\n### Example Screens\n\nUtilize our pre-built screens to jumpstart your app development:\n\n1. **Authentication**: Simplify user sign-in, sign-up, and password recovery processes.\n\n2. **Settings**: Customize user preferences effortlessly for a personalized experience and account management.\n\n3. **Navigation**: Seamlessly organize app content with tab and drawer views.\n\n**[Explore all available screens](./docs/ScreenShots.md)**\n\n# Prerequisites\n\nThere are certain requirements to be followed in order to use it:\n\n- Xcode \u003e= 15.0\n- SwiftUI\n- iOS \u003e= 14.0\n\n# Installation\n\nAs it contains three separate packages MobileQuickLaunchKit, MQLCore and MQLCoreUI. Here MQLCore and MQLCoreUI are the independent packages but the package MobileQuickLaunchKit has dependency on these two independent packages. You can go through the [modules](./Modules.md) section for the detailed documentation and decide which package fits your requirements.\n\nYou can find these two independent packages: MQLCore and MQLCoreUI inside the MobileQuickLaunchKit package.\n\n* File \u003e Add Package Dependency\n* Add `https://github.com/mindfiredigital/MobileQuickLaunchKit-iOS`\n* Select \"Up to Next Major\" with \"0.1.0\"\n* Register your App on the Firebase console, download GoogleService-Info.plist file and add it to your project target.\n* Open your project configuration: click the project name in the left tree view. Select your app from the TARGETS section, then select the Info tab, and expand the URL Types section.\n* Click the + button, and add a URL scheme for your reversed client ID. To find this value, open the GoogleService-Info.plist configuration file, and look for the REVERSED_CLIENT_ID key. Copy the value of that key, and paste it into the URL Schemes box on the configuration page. Leave the other fields untouched.\n* Now you can expand the package and access the files inside the package.\n  \n# Usage\n\n## 1. Branding your App with Logo\n\nIf you want to add your company logo into the views those are defined inside the package like: Splash Screen and Sign In screen. Add a company logo in your project's assest folder by naming it *_\"CompanyLogo\"_*. As the name is case sensitive so please add your company logo image into your asset folder with same name. It will automatically pick the image from your main project.\n\n## 2. Initializing the App with Package ContentView and Authentication\n\nHere is a guide to intialize your App with MQLContentView and use authentication in your App.\n\n* import MobileQuickLaunchKit and GoogleSignIn in you main App.swift file\n* Create a ThemeManager object to pass the current theme as an environment Object\n* Initialize you App class and set your MQLAppState values.\n* Initialize MQLContentView by providing the main view of your App\n```\n        import SwiftUI\n        import MobileQuickLaunchKit\n        import MQLCoreUI\n        \n        @main\n        struct MobileQuickLaunchKitExampleApp: App {\n            @StateObject public var themes = ThemeManager() //Object of ThemeManager\n            init() {\n                //Set the local storage value to the MQLAppState\n                MQLAppState.shared.setValues()\n            }\n            \n            var body: some Scene {\n                WindowGroup {\n                    // Initializing MQLContentView by providing the main view of your App\n                    MQLContentView(\n                        mainView: MainView()\n                        )\n                        .environmentObject(themes.current) // This will help us to access the members of current theme\n                    }\n                }\n            }\n```\n  * Here is an example to create ThemeManager class.\n\n        import SwiftUI\n        import MQLCoreUI\n\n        @available(iOS 13.0, *)\n        class  ThemeManager: ObservableObject {\n            init(){}\n            ///  Colors are being initialized from the assets\n            \n            @Published var current: Theme = Theme(\n                colors: MQLColors(\n                     primary: Color(YOUR_THEME_COLOR),\n                     secondary: Color(\"YOUR_THEME_COLOR),\n                     tertiary: Color(YOUR_THEME_COLOR),\n                     buttonTextPrimary: Color(YOUR_THEME_COLOR),\n                     buttonTextSecondary: Color(YOUR_THEME_COLOR),\n                     placeholderText: Color(YOUR_THEME_COLOR),\n                     backGroundPrimary: Color(YOUR_THEME_COLOR),\n                     backGroundSecondary:Color(YOUR_THEME_COLOR),\n                     error: Color(YOUR_THEME_COLOR),\n                     warning: Color(YOUR_THEME_COLOR),\n                     success: Color(YOUR_THEME_COLOR),\n                     defaultColor: Color(\"Default\"),\n                     borderColor: Color(\"BorderColor\")\n                   ),\n              typography: Typography(\n                    h1: Font.custom(\"Arial-BoldMT\", size: 30), //Use for bold headers\n                    h2: Font.custom(\"Arial-BoldMT\", size: 24),\n                    h3: Font.custom(\"Arial-BoldMT\", size: 18),\n                    h4: Font.custom(\"Arial-BoldMT\", size: 15), // Use for button text\n                    h5: Font.custom(\"Arial-BoldMT\", size: 12),\n                    h6: Font.custom(\"Arial-BoldMT\", size: 10),\n                    body1: Font.custom(\"ArialMT\", size: 15), // Use for body text\n                    body2: Font.custom(\"ArialMT\", size: 14),\n                    body3: Font.custom(\"ArialMT\", size: 16)\n                )\n            )\n        }\n  \n* Here is an Example how to add Authentication to your App's MainView.swift:\n```\n        import SwiftUI\n        import MobileQuickLaunchKit\n        import MQLCoreUI\n        \n        struct  MainView: View {\n            @EnvironmentObject  var  theme : Theme\n            @State  private var  selectedTab = 0\n            @State public var isLoginModalPresented = !MQLAppState.shared.isUserLoggedIn()\n            \n            var  body: some  View {\n                NavigationView {\n                    TabView(selection: $selectedTab) {\n                        HomeView()\n                            .tabItem {\n                                Label(\"Home\", systemImage: \"house\")\n                            }\n                            .tag(0)\n                            // Defined inside the MobileQuickLaunchKit package\n                            MQLSettingsView(isLoginModalPresented: $isLoginModalPresented)\n                                .tabItem {\n                                    Label(\"Settings\", systemImage: \"gearshape\")\n                                }\n                                .tag(1)\n                            }\n                            .accentColor(theme.colors.primary) // Setting the color fro theme\n                            .onAppear {\n                            UITabBar.appearance().backgroundColor = UIColor(theme.colors.backGroundPrimary)\n                        }\n                    }\n                    .navigationViewStyle(StackNavigationViewStyle())\n                    .navigationBarBackButtonHidden()\n                    .fullScreenCover(isPresented: $isLoginModalPresented) {\n                    \n                        /// Defined inside the MobileQuickLaunchKit package\n                        /// Used to Authenticate the user\n                        MQLSignInView(isModalPresented: $isLoginModalPresented)\n                    }\n                    .onChange(of: isLoginModalPresented) {\n                        selectedTab = 0\n                    }\n            }\n        }\n```\n  \n\n* Here is simply a text added in HomeView you can create your own.\n```\n        import SwiftUI\n        import MobileQuickLaunchKit\n        import MQLCoreUI\n        \n        struct  HomeView: View {\n        // To get the current theme data\n        @EnvironmentObject  var  theme : Theme\n        \n            var body: some View {\n            ZStack {\n            // View Background\n            theme.colors.backGroundPrimary\n                .ignoresSafeArea()\n            Text(\"Welcome\")\n                .font(theme.typography.h2)\n                .foregroundColor(theme.colors.secondary)\n             }\n         }\n        }\n```\n\n## 3. MQLSignInView\n\nMQLSignInView is a ready-to-use View integrated with all authentication screens like: Login, Sign up, Forget Password etc. You can simply add this view into your App and use the following features: SignIn, Sign up, Forget Password. You can present this view on the top of any View you created. Usage example:\n  \n  \n    import SwiftUI\n    import MobileQuickLaunchKit\n\n    struct  YourView: View {\n        @State  var  isLoginModalPresented = !MQLAppState.shared.isUserLoggedIn()\n        var body: some View {\n            NavigationView {\n                HomeView()\n            }\n            .fullScreenCover(isPresented: $isLoginModalPresented) {\n                MQLSignInView(isModalPresented: $isLoginModalPresented)\n            }\n        }\n    }\n    \n### 3.1 Auth Callbacks\n\nFor adding extra action after successful sign-in or sign-up you can use the following callbacks - \n\n```\nMQLSignInView(isModalPresented: $isLoginModalPresented,\n    didSignIn: {\n        //Add your actions here\n         debugPrint(\"Hello sign in\")\n    },\n    didSignUp: {\n        //Add your actions here\n        debugPrint(\"Hello sign up\")\n    }\n)\n```\n  \n\n## 4. MQLSettingsView\n\nMQLSettingsView is a ready-to-use View inbuilt authentication feature. This view contains following features: Edit Profile, Change Password, Privacy, Logout, Help, About Us. Usage example:\n```\n    import SwiftUI\n    import MobileQuickLaunchKit\n\n    struct  YourView: View {\n        @State  var  isLoginModalPresented = !MQLAppState.shared.isUserLoggedIn()\n        \n        var body: some View {\n            NavigationView {\n                MQLSettingsView(isLoginModalPresented: $isLoginModalPresented)\n            }\n        }\n    }\n```\n  * You can also use the ChangePassword view and EditProfile view separately by calling the below view structs\n      * MQLChangePasswordView()\n      * MQLEditProfileView()\n\n\n## 5. Configuring App BaseURL and Settings Links\n\nThe default baseURL is \"http://localhost:3001/api/v1/\"  and the Settings Links is \"https://www.google.co.in/\" being used by the package. You can change this to your URLs when you initialize your app by calling the setConfigValues function as given below and adding a config JSON file in the app. For example:\n```\n    import SwiftUI\n    import MobileQuickLaunchKit\n    import MQLCore\n    \n    @main\n    struct MobileQuickLaunchKitExampleApp: App {\n    \n        init() {\n            //Set the json config values to the package value\n            MQLAppState.shared.setConfigValues()\n        }\n    \n        var body: some Scene {\n            WindowGroup {\n                // Initializing MQLContentView by providing the main view of your App\n                    MQLContentView(\n                        mainView: MainView()\n                    )\n                }\n            }\n        }\n```\nconfig.json\n\n```\n    {\n        \"baseURL\": \"your_base_url\",\n        \"privacyURL\": \"your_privacy_url\",\n        \"helpURL\": \"your_help_url\",\n        \"aboutUsURL\": \"your_aboutUs_url\",\n    }\n```\nNote: The name of the JSON file should be config.json.\n  \n\n## 6. MQLCore\n\nTo find the detailed usage documentation for the package click [here](MQLCore/README.md)\n\n  \n\n## 7.  MQLCoreUI\n\nTo find the detailed usage documentation for the package click [here](MQLCoreUI/README.md)\n\n  \n#\n\n* The sample App contains both kinds of navigation using the Tabbar and using Side Menu. \n\n* To unveil the full potential and seamless integration of the Package, please explore the MobileQuickLaunchKitExample project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindfiredigital%2Fmobilequicklaunchkit-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindfiredigital%2Fmobilequicklaunchkit-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindfiredigital%2Fmobilequicklaunchkit-ios/lists"}