dimerabbits / Peanut

Peanut is an orginizational application focusing on user customization whithin a simple interface.

Home Page:https://github.com/dimerabbits/Peanut

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

logo

Peanut

Language Swift 5.5 Twitter: @dimerabbits

Peanut is an organizational application focusing on user customization within a simple interface.

Table of Contents

User Features

  • Dynamic Organization: Handle multiple projects at once by setting reminders, prioritization, sorting, and your choice of color scheme.
  • Tracking Productivity: Keep a close eye on your progress to ensure there is never a deadline missed. Utilize Peanut to meet the goals specific to your work.
  • Sharing: Post comments to share updates and engage with team members to inspire new ideas.

Architecture

  • Modeled with Core Data using an inverse relationship with parent/child entities "To Many".
  • Integrated with CloudKit to enable sharing functionality.
  • Composed primarily without UIKit except for bridging Quick Actions capability and dismissing the keyboard in TextEditor.
  • Pragmatically utilized MVVM where necessary.
  • Built with Accessibility in mind: VoiceOver, grouping data, adding traits and additional labels.

System Integrations

  • Haptics
  • Spotlight
  • Local Notifications
  • StoreKit (In-app purchasing)
  • Shortcuts
  • Home Screen Quick Actions
  • Widgets
  • Storing data in iCloud
  • Querying data from iCloud
  • Posting Comments through iCloud
  • Ratings and Review Request
  • Sign in with Apple

Additional Coaching Points

  • Core sample data for Canvas previews. - optimizing with previewLayout, preferredColorScheme, etc…
  • Extending 'Error' to handle CloudKit errors.
  • SwiftLint - Working off Command Line and implementing as a build phase. Adjusting .yml arguments.
  • Documenting Code - Documentation Comments, MARKS, FIXME, TODO, Orphaned explanation.
  • Testing (Unit & UI) - Measuring performance, setting benchmarks.
  • Internationalization(i18n) & localization(l10n) - genstrings, plurals, interpolated data, and localized to English and Spanish.
  • State Restoration - @AppStorage / @SceneStorage and attaching tag to the Hashable protocol.

Taking it Further…

  • WelcomeView
  • AboutView
  • Completely localized to Spanish
  • Custom TextField (includes clearing text functionality)
  • Custom Progress View
  • Custom Color Picker LazyHGrid
  • String Interpolation and Rendering Markdown content in text
  • Adjusting List row seperator visibility and color
  • Creating a List / ForEach from a binding
  • additional data model attribute - "note" (TextEditor)
  • CKQueryOperation deprecation fix (recordsMatchedBlock, queryResultBlock)
  • Adding additional NavigationLinks to ProjectSummaryView
  • Adjusting list row seperator, visibility, and color
  • ProgressTiled - Project Summary on TodayView using guage meter
  • Shadows and glows (inner, raised)
  • @FocusState - reading and writing the current focus position in view hierarchy. Dismissing the keyboard
  • NotesHeader - Resigning First Responder to dismiss the keyboard in TextEditor
  • SwiftUI for iOS 15 - confirmationDialog, withAnimation, Button roles, submitLabel, textSelection, symbolRenderingMode, Visual Effect Blurs using Material, focusable, alert, onSubmit, foregroundStyle(semantic colors, gradients, glows, shadows)
  • Incorporating a multitude of Swift 5.5 API’s and Adhering to the latest Apple Interface Guidelines.

Credits

Learning from Paul Hudson.

License

Peanut is MIT licensed, as found in the LICENSE file.

About

Peanut is an orginizational application focusing on user customization whithin a simple interface.

https://github.com/dimerabbits/Peanut

License:Other


Languages

Language:Swift 100.0%