All Projects → iDara09 → Shob

iDara09 / Shob

Licence: mit
SwiftUI + CoreData & iCloud AutoSync Project

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Shob

Remark Github
plugin to autolink references to commits, issues, pull-requests, and users, like on GitHub
Stars: ✭ 83 (-7.78%)
Mutual labels:  markdown
Hypermd
A WYSIWYG Markdown Editor for browsers. Break the Wall between writing and previewing.
Stars: ✭ 1,258 (+1297.78%)
Mutual labels:  markdown
Rust Book Chinese
rust 程序设计语言 中文版
Stars: ✭ 1,280 (+1322.22%)
Mutual labels:  markdown
Kefirbb
A flexible Java text processor. BB, BBCode, BB-code, HTML, Textile, Markdown, parser, translator, converter.
Stars: ✭ 83 (-7.78%)
Mutual labels:  markdown
Linl
Linl Is Not Letter -- Markdown-based LaTeX Letter Template
Stars: ✭ 84 (-6.67%)
Mutual labels:  markdown
Easy web view
Flutter Web Views on Mobile and Web made easy!
Stars: ✭ 85 (-5.56%)
Mutual labels:  markdown
Details
R Package to Create Details HTML Tag for Markdown and Package Documentation
Stars: ✭ 83 (-7.78%)
Mutual labels:  markdown
Trackmd
Tools for tracking changes in Markdown format within RStudio
Stars: ✭ 89 (-1.11%)
Mutual labels:  markdown
Community Modules
Stars: ✭ 1,258 (+1297.78%)
Mutual labels:  markdown
React Showdown
Render React components within markdown and markdown as React components!
Stars: ✭ 86 (-4.44%)
Mutual labels:  markdown
Markdown Plus Plus
Markdown syntax highlighting for Notepad++, by customized UDL file (user defined language)
Stars: ✭ 1,252 (+1291.11%)
Mutual labels:  markdown
Laravel Blog
基于Laravel5.8构建的轻量博客应用,支持Markdown,支持图片拖拽上传,界面简洁,SEO友好,支持百度链接自动和手动提交
Stars: ✭ 84 (-6.67%)
Mutual labels:  markdown
Bookeditor
Stars: ✭ 86 (-4.44%)
Mutual labels:  markdown
Mathbin
Math pastebin with LaTeX and Markdown support
Stars: ✭ 83 (-7.78%)
Mutual labels:  markdown
Nextra
The Next.js Static Site Generator
Stars: ✭ 1,271 (+1312.22%)
Mutual labels:  markdown
Ignite
Modern markdown documentation generator
Stars: ✭ 83 (-7.78%)
Mutual labels:  markdown
Blog Vue Typescript
vue + typescript + element-ui 支持 markdown 渲染的博客前台展示
Stars: ✭ 1,262 (+1302.22%)
Mutual labels:  markdown
Blog
基于Python Flask并支持Markdown语法的简易博客
Stars: ✭ 89 (-1.11%)
Mutual labels:  markdown
Gluedown
Wrap R vectors in markdown syntax
Stars: ✭ 88 (-2.22%)
Mutual labels:  markdown
Swiftymarkdown
Converts Markdown files and strings into NSAttributedStrings with lots of customisation options.
Stars: ✭ 1,274 (+1315.56%)
Mutual labels:  markdown

ShoB

A project aimed to build an order tracking iOS application and also to learn SwiftUI.

Status

In progress...

Goal

  • [ ] 100% SwiftUI
  • [ ] Intergrage CoreData & iCloud AutoSync
  • [ ] CloudKit Share Support
  • [ ] Dark Mode Support
  • [ ] Markdown Support
  • [ ] Generate Invoice PDF
  • [ ] Deploy

Preview

Order Scene

Order Scene Preview Order Input 01 Order Input 02

Customer Scene

Customer Scene Preview

Item Scene

Item Scene Preview

Store Scene

Store Scene Preview

Learning

This is a section for listing out documents, resources, thoughts, and approaches.

Core Data & iCloud Auto Sync

Since iOS 13 now supports Core Data auto sync with CloudKit, the project will take advantage of that.

Requirement:

  • Creating the Core Data Stack using NSPersistentCloudKitContainer instead of NSPersistentContainer.
  • The auto sync feature requires that all properties of NSManagedObject's Entity must be optional in the .xcdatamodeld file.

Resource:

CloudKit Share

Still on the list.

Dark Mode

To support dark mode out of the box, the project makes use of system colors such as Color.primary, .secondary, and .accentColor...

Markdown

Still on the list.

Generate PDF

Still on the list.

View

Model View View Model (MVVM)

The MVVM is used on most of the top level views to handle view update. Whereas, some of the inner views or views that are part of the top level views might only need @State or @ObservedObject properties.

  • Most top level views have their own view model either a struct or a class which conforms to ObservableObject.
  • Property Wrapper @Published is used in the class view model to get will-change signal from the publisher for the properties of interest.

Navigation View Push/Pop

There is a feature in the application to discard any unsaved changes when user tap on the navigation view's back button.

Until there is a native way of doing this, the approach right now is to use NavigationStateHandler object to setup action to perform when the view is pushed or popped.

Create/Read/Update/Delete Core Data Object

The approach right now is the make use of EnvironmentObject. There will be a concrete data source object specific to each type of model object that will handle all the actions.

The concrete data source object will conform to ObjectDataSource protocol. The protocol has all the methods for fetching, creating, reading, updating, deleting, and validating NSManagedObject. The ObjectDataSource protocol works hand in hand with ObjectValidatable protocol.

Therefore, views that have access to the EnvironmentObject will be able to access objects and methods to perform necessary actions.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].