Static Native Template and Dynamic Styling without any other app release

Overview

FileManager Project

Students and Freshers, Good opportunity for you to learn and contribute in this project.

Here you would learn

  1. how you can change the look and feel of the iOS interface from a small server side json containing styling of the each elements of this file manager.
  2. VIPER Design pattern which is widely accepted
  3. Network Layer with Viper Design Pattern
  4. Many more to come .....

I have started this from few days before and you can contribute and share your expertise in this project.

JSON based Styling -

{
    "name":"drive",
    "driveSearch":{
        "containerWidth":390,
        "style":[
            {
                "value":"24",
                "attr":"leftRightMargin"
            },
            {
                "value":"#FFFFFFFF",
                "attr":"backgroundColor"
            }
        ],
        "searchHeight":60,
        "order":3,
        "title":{
            "name":"search for documents",
            "style":[
                {
                    "value":"#FFFFFFCC",
                    "attr":"textColor"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"OpenSans-Bold",
                    "attr":"fontFamily"
                }
            ]
        },
        "tag":31,
        "icon":{
            "resource":"user"
        }
    },
    "style":[
        
    ],
    "driveFilesContainer":{
        "style":[
            {
                "value":"#FFFFFFFF",
                "attr":"backgroundColor"
            },
            {
                "value":"24",
                "attr":"leftMargin"
            }
        ],
        "title":{
            "name":"Files",
            "style":[
                {
                    "value":"#000000FF",
                    "attr":"textColor"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"OpenSans-Bold",
                    "attr":"fontFamily"
                },
                {
                    "value":"15.0",
                    "attr":"topPadding"
                },
                {
                    "value":"5.0",
                    "attr":"bottomPadding"
                }
            ],
            "tag":51
        },
        "viewAll":{
            "style":[
                {
                    "value":"#000000FF",
                    "attr":"textColor"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"OpenSans-Bold",
                    "attr":"fontFamily"
                },
                {
                    "value":"15.0",
                    "attr":"topPadding"
                },
                {
                    "value":"5.0",
                    "attr":"bottomPadding"
                }
            ],
            "tag":52
        },
        "table":{
            "title":{
                
            },
            "image":{
                "style":[
                    {
                        "value":"16.8",
                        "attr":"width"
                    },
                    {
                        "value":"19.2",
                        "attr":"width"
                    },
                    {
                        "value":"aspectFit",
                        "attr":"contentMode"
                    }
                ]
            },
            "tag":53,
            "subtitle":{
                
            }
        },
        "tag":50,
        "order":4
    },
    "driveStorage":{
        "title":{
            "name":"982 MB",
            "style":[
                {
                    "value":"#FFFFFFFF",
                    "attr":"textColor"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"15.0",
                    "attr":"topPadding"
                },
                {
                    "value":"OpenSans-Bold",
                    "attr":"fontFamily"
                }
            ],
            "tag":21
        },
        "order":2,
        "subtitle":{
            "name":"Free of 1GB",
            "style":[
                {
                    "value":"#FFFFFFCC",
                    "attr":"textColor"
                },
                {
                    "value":"15.0",
                    "attr":"fontSize"
                },
                {
                    "value":"15.0",
                    "attr":"topPadding"
                },
                {
                    "value":"OpenSans-SemiBold",
                    "attr":"fontFamily"
                }
            ],
            "tag":22
        },
        "style":[
            {
                "value":"24,0,0,10",
                "attr":"Margin"
            }
        ],
        "progress":{
            "name":"40",
            "style":[
                {
                    "value":"#000000FF",
                    "attr":"backgroundColor"
                },
                {
                    "value":"4",
                    "attr":"height"
                }
            ],
            "tag":23
        }
    },
    "driveFooter":{
        "order":5,
        "style":[
            {
                "value":"24,44,0,0",
                "attr":"Margin"
            }
        ],
        "button":{
            "name":"Add File",
            "style":[
                {
                    "value":"#000000FF",
                    "attr":"textColor"
                },
                {
                    "value":"700.0",
                    "attr":"fontWeight"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"#502EE3FF",
                    "attr":"backgroundColor"
                },
                {
                    "value":"40",
                    "attr":"height"
                },
                {
                    "value":"20",
                    "attr":"cornerRadius"
                },
                {
                    "value":"80",
                    "attr":"width"
                },
                {
                    "value":"OpenSans-Regular",
                    "attr":"fontFamily"
                }
            ],
            "tag":61
        },
        "tag":60
    },
    "order":1,
    "driveHeader":{
        "style":[
            {
                "value":"24,44,0,0",
                "attr":"Margin"
            }
        ],
        "title":{
            "name":"FileManager Drive",
            "style":[
                {
                    "value":"#FFFFFFFF",
                    "attr":"textColor"
                },
                {
                    "value":"700.0",
                    "attr":"fontWeight"
                },
                {
                    "value":"24.0",
                    "attr":"fontSize"
                },
                {
                    "value":"Metropolis-Regular",
                    "attr":"fontFamily"
                }
            ],
            "tag":11
        },
        "order":1,
        "subtitle":{
            "name":"Documents in the FileManager Drive are Not treated as authentic",
            "style":[
                {
                    "value":"#FFFFFFFF",
                    "attr":"textColor"
                },
                {
                    "value":"14.0",
                    "attr":"fontSize"
                },
                {
                    "value":"OpenSans-Regular",
                    "attr":"fontFamily"
                }
            ],
            "tag":12
        },
        "image":{
            "style":[
                {
                    "value":"aspectFit",
                    "attr":"contentMode"
                }
            ],
            "tag":13,
            "resource":"file-header"
        },
        "tag":10
    },
    "driveFoldersContainer":{
        "title":{
            "name":"Folders",
            "style":[
                {
                    "value":"#000000FF",
                    "attr":"textColor"
                },
                {
                    "value":"16.0",
                    "attr":"fontSize"
                },
                {
                    "value":"OpenSans-Bold",
                    "attr":"fontFamily"
                },
                {
                    "value":"15.0",
                    "attr":"topPadding"
                },
                {
                    "value":"5.0",
                    "attr":"bottomPadding"
                }
            ],
            "tag":41
        },
        "order":4,
        "style":[
            {
                "value":"#FFFFFFFF",
                "attr":"backgroundColor"
            },
            {
                "value":"24",
                "attr":"leftMargin"
            }
        ],
        "tag":40,
        "horizontalBar":{
            "style":[
                {
                    "value":"104",
                    "attr":"width"
                },
                {
                    "value":"104",
                    "attr":"height"
                }
            ],
            "title":{
                "style":[
                    {
                        "value":"20",
                        "attr":"height"
                    },
                    {
                        "value":"12",
                        "attr":"fontSize"
                    },
                    {
                        "value":"OpenSans-SemiBold",
                        "attr":"fontFamily"
                    },
                    {
                        "value":"center",
                        "attr":"textAlignment"
                    },
                    {
                        "value":"8",
                        "attr":"topPadding"
                    }
                ]
            },
            "image":{
                "style":[
                    {
                        "value":"#OOOOOOFF",
                        "attr":"backgroundColor"
                    },
                    {
                        "value":"40.0",
                        "attr":"width"
                    }
                ]
            },
            "tag":42,
            "itemStyle":[
                {
                    "value":"104",
                    "attr":"width"
                },
                {
                    "value":"104",
                    "attr":"height"
                }
            ]
        }
    }
}

Getting Started

Fork the project

  1. Fork Project using fork button at top right to become the part of great community of iOS App Developers

Requirements

  • iOS 12.0 or later
  • macOS 10.12 or later (10.15 for Catalyst)
  • Xcode 11.0 or later

Podfile

platform :ios, '9.0'
pod 'SDWebImage'
pod 'RealmSwift'

Getting Started

  1. Install Pods (Can be done by following command in Terminal ) pod install
  2. Change environmentBaseURL, path, httpMethod, task, headers

    Change according to the api specifications

  3. To load default list uncomment line

    presenter?.fetchFileList(path:nil)

Who Uses It

  • Those who are keen to learn and explore knowledge in iOS App Development , can contribute in project by sending pull request.

Communication

  • If you need help you can ask questions in Discussions Tab
  • If you have a feature request, open an issue.

Contribution

  • Code Optimization
  • Feature Development
  • Bug Finding
  • Bug Fixing

Developed Modules

  • File Manger Template
  • Embedded styling of the native elements using json
  • Added Click handlers and navigate to the folder detail screen
  • Option Menu added on click
  • Network Layer Added
  • Default List Added
  • Realm Database added to show default list
  • Add File Button added
  • Realm Manager added

Under Development

ScreenShots

  1. File Manager
  2. File Detail Page
You might also like...
Docker images for Swift on Raspberry Pi and other ARM devices from balena's base images.

Swift on Balena Welcome to Swift on Balena – a set of Docker images for Swift on Raspberry Pi and other ARM devices. These images are based on balena'

🛠 A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern.
🛠 A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern.

Model-View-Presenter template A flexible and easy template created to speed up the development of your iOS application based on the MVP pattern. This

React Native library that implements PayPal Checkout flow using purely native code (swift).
React Native library that implements PayPal Checkout flow using purely native code (swift).

react-native-paypal-swift React Native library that implements PayPal Checkout flow using purely native code (swift). Installation npm install react-n

Vahesaroyan-react-native-bubble-select - React native bubble picker

@vahesaroyan/react-native-bubble-select React native bubble picker Installation

Challenging each other to complete pet projects!

Podlodka Pet Project Challenge Мотивируем друг друга на завершение своих пет проджектов! Каждую неделю каждый участник вносит в банк 1 ставку и ведет

A custom calculator for deg to rad conversion & the other way round
A custom calculator for deg to rad conversion & the other way round

Lilium Features A custom calculator for deg to rad conversion & the other way round. How to use Slide up the dock and you should see Lilium. An activa

XCode Preview template for UIkit based project.
XCode Preview template for UIkit based project.

SwiftPreview XCode Preview template for UIkit based project. Support custom file template class inherit from UIView and UIViewController. How to use?

The template for Delta Client plugins.

Delta Plugin Template This repository is a template for Delta Client plugins. To create a plugin, create a repo from this template repo and then repla

Xamoom tourism template iOS

xamoom-tourism-template-iOS Pods Install pods via command pod install Buid system Open File - Workpace settings Select Legacy Build System Check Do n

Owner
Naveen Chauhan
Mobile App Developer
Naveen Chauhan
React Native Template for Taro

React Native Template for Taro requirement taro: @tarojs/cli@^3.2.0 framework: 'react' quick start install react native library install peerDependenci

null 1 Nov 20, 2021
A native iOS UI widget for adding Spokestack to any iOS app.

A native iOS library for adding Spokestack to any iOS app. Installation Edit Podfile CocoaPods is a dependency manager for Cocoa projects. For usage a

Spokestack 6 Jun 8, 2021
A zero-code template app that demonstrates how to use TheraForge's APIs and can be used for fast prototyping

TheraForge MagicBox 1.0.0-beta The Open TheraForge (OTF) MagicBox app is a template for creating digital health solutions that help people better mana

TheraForge 0 Dec 23, 2021
LinkedLog is a Xcode plugin that includes a Xcode PCH header file template that adds the macros `LLog` and `LLogF` and parses their output to link from the console to the corresponding file and line.

LinkedLog Xcode Plugin LinkedLog is a Xcode plugin that includes a Xcode PCH file template that adds the macros LLog and LLogF. The LLog macro will wo

Julian F. Weinert 22 Nov 14, 2022
A Swift package that provides convenient Lorem Ipsum text, images, colors and other placeholders for rapidly prototyping, building and testing your iOS applications.

Lorem Introducing Lorem, a placeholder generator library for iOS to help you rapidly prototype, build and test your iOS applications. By leveraging Sw

Thirdfort Limited 10 Dec 5, 2022
A template Vapor app with nginx frontend.

This is an example Vapor app. It contains the app itself, as well as surrounding components (Postgres database, nginx frontend for providing secure connection), all runnable out of the box with docker compose. It is a good starting point for Vapor development of an API server which you could access from macOS and iOS clients.

Jaanus Kase 5 Jul 1, 2022
UIKit-based app project template for Swift Playgrounds 4

playgrounds-uikit-app This is a simplistic sample template for Swift Playgrounds 4 to begin with a UIKit-based app delegate & window scene instead of

Steven Troughton-Smith 39 Sep 19, 2022
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
This is a template repository for quickly creating boilerplate code for a SwiftUI macOS menu bar app.

Menu Bar App This is a template repository for quickly creating boilerplate code for a SwiftUI macOS menu bar app. License This app is released into t

apparata 5 Dec 6, 2022
Example how to make, update and end Live Activity. With Dynamic Island and Lock Screen.

Live Activity Example Example how to make, update and end Live Activity. With Dynamic Island and Lock Screen. Full tutorial available at sparrowcode.i

Sparrow Code 9 Dec 8, 2022