FileManager Project
Students and Freshers,
Good opportunity for you to learn and contribute in this project.
Here you would learn
- 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.
- VIPER Design pattern which is widely accepted
- Network Layer with Viper Design Pattern
- 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
- 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
- Install Pods (Can be done by following command in Terminal )
pod install
- Change environmentBaseURL, path, httpMethod, task, headers
Change according to the api specifications
- 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
- Background refresh done using Realm
Under Development
- File Detail Page
- DropBox Api Integration – https://www.dropbox.com/developers/documentation/http/documentation
ScreenShots
- File Manager
- File Detail Page