All Projects → ChristianKienle → Core Data Editor

ChristianKienle / Core Data Editor

Licence: bsd-3-clause
Core Data Editor lets you easily view, edit and analyze applications‘ data. Core Data Editor is compatible with Mac and iOS applications and supports XML, SQLite and binary stores, visualizes all relationships and is able to edit the data and generate Objective-C code for the data model.

Programming Languages

objective c
16641 projects - #2 most used programming language

Labels

Projects that are alternatives of or similar to Core Data Editor

Ios Sdk
AppSpector is a debugging service for mobile apps
Stars: ✭ 56 (-97.34%)
Mutual labels:  coredata
Dictionaryplusplus
Dictionary++ is a simple interface to iOS's system dictionary.
Stars: ✭ 112 (-94.68%)
Mutual labels:  coredata
Coredata Crud Swift 5.0 Example
Swift 5.0 Example project that exposes the usage of Core Data to create Entities and to persist to a SQLite Datastore
Stars: ✭ 157 (-92.55%)
Mutual labels:  coredata
Tothepenny
A budget tracker app for iOS
Stars: ✭ 82 (-96.11%)
Mutual labels:  coredata
Ios Hierarchy Viewer
iOS Hierarchy viewer - View and Coredata debugging made easy
Stars: ✭ 1,345 (-36.13%)
Mutual labels:  coredata
Swiftui Core Data Test
Sample program to demonstrate how CoreData can be used with SwiftUI.
Stars: ✭ 135 (-93.59%)
Mutual labels:  coredata
Avsqldebugger
A Simple Core Data Debugger that will look inside your apps DB
Stars: ✭ 30 (-98.58%)
Mutual labels:  coredata
Velik
Ride tracking app
Stars: ✭ 168 (-92.02%)
Mutual labels:  coredata
Predicateflow
Write amazing, strong-typed and easy-to-read NSPredicate.
Stars: ✭ 98 (-95.35%)
Mutual labels:  coredata
Justpersist
JustPersist is the easiest and safest way to do persistence on iOS with Core Data support out of the box. It also allows you to migrate to any other persistence framework with minimal effort.
Stars: ✭ 157 (-92.55%)
Mutual labels:  coredata
Shob
SwiftUI + CoreData & iCloud AutoSync Project
Stars: ✭ 90 (-95.73%)
Mutual labels:  coredata
Bgfmdb
BGFMDB让数据的增删改查分别只需要一行代码即可,就是这么简单任性,本库几乎支持存储ios所有基本的自带数据类型.
Stars: ✭ 1,344 (-36.18%)
Mutual labels:  coredata
Coredataplaygrounds
Exploring Core Data through Swift playgrounds
Stars: ✭ 139 (-93.4%)
Mutual labels:  coredata
Jotify
Sticky notes reimagined - written in Swift
Stars: ✭ 79 (-96.25%)
Mutual labels:  coredata
Upcomingmovies
Movies app written in Swift 5 using the TMDb API and demonstrating Clean Architecture, Dependency Injection, MVVM and Coordinators.
Stars: ✭ 160 (-92.4%)
Mutual labels:  coredata
Coredatakit
CoreDataKit makes common operations on objects and importing into CoreData a breeze.
Stars: ✭ 35 (-98.34%)
Mutual labels:  coredata
Widgetexamples
A demo project showcasing different types of Widgets created with SwiftUI and WidgetKit.
Stars: ✭ 125 (-94.06%)
Mutual labels:  coredata
Coredatabestpractices
Best Practices in Core Data explained within a demo application
Stars: ✭ 171 (-91.88%)
Mutual labels:  coredata
Clean Architecture Swiftui
SwiftUI sample app using Clean Architecture. Examples of working with CoreData persistence, networking, dependency injection, unit testing, and more.
Stars: ✭ 2,925 (+38.89%)
Mutual labels:  coredata
Cloudcore
Framework that enables syncing between iCloud (CloudKit) and Core Data
Stars: ✭ 146 (-93.07%)
Mutual labels:  coredata

Build Status

Branch Status
Master Build Status
Develop Build Status

Core Data Editor

Core Data Editor Logo

Core Data Editor lets you easily view, edit and analyze applications‘ data. Core Data Editor is compatible with Mac and iOS applications and supports XML, SQLite and binary stores, visualizes all relationships and is able to edit the data and generate Objective-C code for the data model.

Core Data Editor will guide you through a short setup process when you initially launch the app. This setup process is entirely optional. You can skip over each and every step if you know what you are doing. It is recommended that you take your time and go though the setup process. It only takes a few minutes.

Donations

If you want to support Core Data Editor you can donate via PayPal.

Thanks.

Building Core Data Editor

Download the sources, open the workspace in Xcode and hit build and run. Done.

Architecture

Core Data Editor is all about displaying and editing managed objects. A large chunk of code simply deals with that aspect.

CDEManagedObjectsViewController

This class is very important because it is responsible for a lot of different things:

  • Display 0-n managed objects in a table view.
  • Manage a search field that allows the user to filter the currently displayed managed objects.
  • Allow the user to add and/or remove managed objects.

A managed objects view controller can display all objects from a specific entity or all objects that are related to an object with regards to a specific relationship (which can be a to-one, to-many (ordered or unordered)).

So, you can throw almost any request at a managed objects view controller and it will just work. It works even though displaying ALL objects that belong to a specific entity works differently than just displaying an object that is part of a to-one relationship. This is where data coordinators come into play. A data coordinator abstracts all the differences away and every managed objects view controller is powered by a data coordinator.

Data Coordinators

As already mentioned each managed objects view controller is powered by a data coordinator. A data coordinator can

  • load the requested objects
  • prepare a table view (= create the table columns needed to display the managed objects)
  • create object values for the rows/columns of the table view
  • create new managed objects
  • delete (selected) managed objects
  • allow the user to edit values
  • auto save entity related information (column width, column ordering)

A data coordinator is represented by an instance of CDERequestDataCoordinator. This class has a lot of methods for the abilities described above. Most of the methods have a default implementation. This class is supposed to be subclassed. There are several subclasses:

  • CDEEntityRequestDataCoordinator: If a managed objects view controller wants to display ALL objects that belong to a specific entity it simply creates an CDEEntityRequestDataCoordinator. Internally a CDEEntityRequestDataCoordinator sets up an NSArrayController to do the heavy lifing. It also allows the creation and deletion of objects.
  • CDEUnorderedRelationshipRequestDataCoordinator: This class is used by a managed objects view controller that wants to display an unordered to-many relationship. If a user wants to add an object this coordinator creates an object and establishes a relationship to the original object.
  • CDEOrderedRelationshipRequestDataCoordinator: This coordinator works similar to the unordered version but in addition it creates an additional table column which contains the order index of the displayed managed objects.
  • CDEToOneRelationshipRequestDataCoordinator: A to-one coordinator is responsible for managing everything that has to do with an object that is part of a to-one relationship. It's main purpose is to introduce a different add/remove behavior: Adding a managed object to a to-one relationship does only make sense if there is not already a related object present.

That being said there should be little reason to introduce a new coordinator subclass.

Contributing

If you want to contribute send me pull requests. Have a look at the issue tracker to find out what should be done next.

Credits

Core Data Editor has the following third party dependencies:

  • BFNavigationController
  • CHCSV Parser
  • Omni NSAlert Extensions
  • RSVerticallyCenteredTextFieldCell
  • Code from ATS
  • mogenerator

Contributors

Contact

Christian Kienle ([email protected])

License

3-clause BSD (please don't sue me)

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].