This app has always been open source! It began with the Big Brain Hackathon and now during Hacktoberfest

Overview

brain-marks-promo

Brain Marks

This app has always been open source! It began with the Big Brain Hackathon and now during Hacktoberfest. It is available for free on the App Store. This app uses the Twitter API (v2 where possible) and AWS Amplify DataStore.

Getting Started

  • You will need an API key from the Twitter API
  • If your feature/change requires changing the model you will need to know AWS Amplify DataStore
  • Fork this repo
  • Clone your repo and move into that directory:

git clone https://github.com/mikaelacaron/brain-marks && cd brain-marks

  • Checkout a new branch (from the dev branch) to work on an issue:

git checkout -b issueNumber-feature-name

  • Open Xcode and run the app! (Shortcut ⌘ + R)
  • Open your forked repo in your browser and create a PR to the dev branch of this repository
  • See CONTRIBUTING.md for more in-depth instructions.

Contributing

To start contributing, review CONTRIBUTING.md. New contributors are always welcome to support this project. Issues labeled good-first-issue are great for beginners.

Please be sure to comment on an issue you'd like to work on and the maintainers will assign it to you!

Checkout any issue labeled hacktoberfest to start contributing

Contributors

Made with contributors-img

License

This project is licensed under the MIT.

Comments
  • Re-Order Category Folders

    Re-Order Category Folders

    Is your feature request related to a problem? Please describe.

    • No

    Describe the solution you'd like

    • Press and hold a row to reorder the categories

    Describe alternatives you've considered

    • None

    Additional context

    • None
    feature hacktoberfest 
    opened by mikaelacaron 14
  • Add Requestbuilder

    Add Requestbuilder

    Closes #150

    What it Does

    • Enables code coverage when performing tests
    • Encapsulate functionality from the AddUrlViewmodel into a RequestBuilder object
    opened by Drag0ndust 10
  • Add support for Localization

    Add support for Localization

    Add language support for German Add language support for English

    Here is bit more explanation as to what was done: Every view string has been turned into a LocalizedStringKey. This lets the App Check the string in the Localizable.string file, each of which is assigned a language in the inspector. The App then replaces the StringKey with the appropriate Language-Strings.

    However, for this to work properly, the build setting Use compiler to extract Swift Strings. This also filters every Text and TextField as Localized String Key.

    But I cannot merge this Change because conflicts arise, meaning @mikaelacaron would probably have to do that.

    Image of Build Setting (though it may be under "all" instead of "basic" image

    hacktoberfest-accepted 
    opened by AC40 8
  • FEATURE - Highlight Hashtags

    FEATURE - Highlight Hashtags

    Describe the solution you'd like

    • Highlight the hashtag like Twitter

    Additional context No need to have a hyperlink to the hashtag on Twitter, this is only to help highlight hashtags vs all the other words in a tweet Screen Shot 2021-10-15 at 4 43 16 PM .

    feature hacktoberfest 
    opened by mikaelacaron 8
  • Pull to Refresh

    Pull to Refresh

    Is your feature request related to a problem? Please describe. No

    Describe the solution you'd like

    • Add pull to refresh on the categories screen
      • Refresh the categories from AWS Amplify DataStore
    • Add pull to refresh on the tweets screen
      • Fetch all tweets for the certain category from the Twitter API

    Describe alternatives you've considered None

    Additional context N/A

    feature good first issue hacktoberfest 
    opened by mikaelacaron 8
  • BUG - Shouldn't need to reselect prefilled category

    BUG - Shouldn't need to reselect prefilled category

    Describe the bug

    When adding a tweet link, the category field is automatically populated with the first category created, which is fine (although maybe should be the most recently created category). However, the app doesn't seem to know that and then wants you to select a category again.

    To Reproduce

    Steps to reproduce the behavior:

    1. Add one or more categories
    2. Add a tweet link
    3. Tap Save
    4. Uh oh alert displays saying you must select a category

    Expected behavior

    • After tapping Save, return to the Category list view. If you then navigate to the category in which you added the link, the linked tweet should display.

    Screenshots

    • RequestingCategoryButItsThere

    Device Info (please complete the following information):

    • Device: iPhone14 Pro simulator
    • OS: iOS 16.0
    • App Version: 1.1?

    Additional Context

    From discussion with @mikaelacaron, "pretty sure it’s due to iOS 16, cause it used to link you to a new list, and push a new view, but now the context menu instead comes up"

    bug good first issue hacktoberfest 
    opened by SuzGupta 7
  • Analytics Ideas

    Analytics Ideas

    Describe the feature you want the app to have that it currently doesn't

    • What kind of frameworks can I add to the app to track what versions users are on?
    • Also interested in tracking events, like people saving tweets (not the actual content, but just events)

    Describe alternatives you've considered

    • I'm open to any options that are available via SPM

    Additional context

    • Interesting in any ideas, but I'm going to implement this myself, most likely
    feature question hold 
    opened by mikaelacaron 7
  • Show Images

    Show Images

    Is your feature request related to a problem? Please describe. N/A

    Describe the solution you'd like If a tweet has an associated image, display that image as well. For this issue focus only on a single image in a tweet, not a tweet with multiple images. (unless that can also be easily added, but I doubt it)

    Describe alternatives you've considered N/A

    Additional context Example tweet URL

    feature good first issue hacktoberfest 
    opened by mikaelacaron 7
  • Share Extension

    Share Extension

    Fix for issue #57

    Usage

    Set value of incomingURL directly from the share extension using .init(SuiteName from UserDefaults using the appGroup name and get it from the main app when you need it like in AddURLView as an example.

    opened by prabal4546 7
  •  Add function to highlight hashtags

    Add function to highlight hashtags

    Progress / Closed on issue #82 Highlight Hashtags

    What it Does

    • Words in tweets preceded with the # symbol will now appear highlighted in Twitter blue.
    • Add function to highlight hashtags
    • Add example tweets to AWS

    How I Tested

    • Run the application
    • Look through your collections for saved tweets containing the # symbol
    • Words beginning with # will appear blue. Words with the # symbol in the middle will not be

    Screenshot

    Simulator Screen Shot - iPhone 13 Pro - 2022-10-12 at 17 42 48

    opened by MarshallARoss 6
  • FEATURE: Add alternate app icons

    FEATURE: Add alternate app icons

    Is your feature request related to a problem? Please describe. I get bored when an app only has one icon. I love choices!

    Describe the solution you'd like I'd like to see alternate app icons.

    Describe alternatives you've considered Honestly, I have not yet considered other options because I think alternative app icons are super fun and fairly straightforward. Really, this is primarily a design issue.

    Here's the Apple doc on how to do this: https://developer.apple.com/documentation/xcode/asset_management/configuring_your_app_to_use_alternate_app_icons

    Additional context Add any other context or screenshots about the feature request here.

    feature hacktoberfest 
    opened by SuzGupta 6
  • Core Data integration

    Core Data integration

    Progress / Closed on issue #

    What it Does

    TLDR: Introduces Core Data as the main data store 💽

    📙 I left some more explanations in comments in the code cause that's easier for future maintainers to see.

    Adds Core Data for Tweet and Category CRUD

    Core Data has been added and the supporting files can be found in the CoreData folder.

    There are two entities.

    • CategoryEntity holds the categories and has a one to many relationship to the TweetEntity.
    • TweetEntity holds the tweets and has a many to one relationship to the CategoryEntity.

    CoreData/StorageProvider.swift is used to initialize the NSPersistentContainer. It has preview variable which is used for the SwiftUI canvas/preview and a shared variable which is used all other times.

    Migration from Amplify to Core Data

    How a migration is performed:

    1. On app launch, a check is done if the migration needs to happen.
    2. All categories are fetched from AWS Amplify
    3. For each category:
      1. Translate the AWS Category to a CoreDataEntity
      2. Fetch the AWS Tweets from the AWS Category
      3. For each tweet, translate it to a TweetEntity and add it to the CategoryEntity tweets
    4. Save to core data

    How is a Migration determined:

    The following conditions must both be true for a migration to run.

    1. storageProvider.getAllCategories().isEmpty is true
    2. The user default migrationToCoreDataRan is true

    How I Tested

    1. Run the application from dev branch, create a category and save some tweets
    2. Run the application from jay/bugfix-data and see the categories look the same (migration ran)
    3. Save some more tweets and the tweets persist through app load
    4. Edit the category name and see it stays the same through app loads
    opened by heyjaywilson 0
  • Support all Dynamic Type sizes throughout the app

    Support all Dynamic Type sizes throughout the app

    What it Does

    • Updated the font to use the dynamic type instead of hardcoded size

    How I Tested

    • Run the app in the simulator
    • Open Accessibility Inspector > Settings > change the font size to see how it is adjusting in the app

    relates to #136

    hacktoberfest-accepted 
    opened by aopoka 1
  • Partial implementation of lock screen widget, ISO help

    Partial implementation of lock screen widget, ISO help

    Because I have changed BrainMarksWidgets.swift in an attempt to get the user configuration working, this no longer works but, as shown in the screen cap below, an earlier version did result in the lock screen widget appearing in the widget galley. Also working previously: tapping the widget opened the tweet list view for the first category in the categories array.

    Right now, after flailing around attempting to add the user configuration aspects, it's all fairly broken. I am submitting the draft PR as a good faith effort and also in hopes of getting some help. Some questions I have:

    • How do I get list of categories into the widget configuration (in other words, into the Intents extension)?
    • How do I get the selected category’s image from within the widget?
    • What should I be doing with Provider inside the Widgets file? What should it conform to and what do I need to add to correct the Xcode errors?
    • What’s the right way to set up an IntentTimelineProvider?

    References

    Progress on issue #155

    What it Does

    Nothing right now, since it's broken, but the idea is to have a circular widget that display's the user's choice of Brain Marks Category. When tapped, this widget will open Brain Marks showing the Tweet List view for the selected category. The user can set up a couple of these widgets on her lock screen, each set to display a different category.

    How I Tested

    (Interpreting as how one would test; this is currently broken)

    • Launch app in simulator
    • Command-L to show Lock Screen
    • Long press on Lock Screen will eventually lead to a screen configuration view where one can add and edit widgets. This was quite slow on my machine but does eventually work.
    • Add a Brain Marks Lock Screen widget.
    • Tap the widget to configure, then choose a category.
    • The widget now displays that category's image.
    • When tapped, the widget displays that category's list of tweets.

    Notes

    • Mark Powell has offered to pair with me later in the week, so I do intend to come back and finish this properly!

    Screenshot

    Simulator Screen Shot - iPhone 14 Pro Max - 2022-10-28 at 10 42 20

    hacktoberfest-accepted 
    opened by SuzGupta 0
  • [Temp] Intermidiate code added

    [Temp] Intermidiate code added

    Progress / Closed on issue #

    What it Does

    • Describe what your change does

    How I Tested

    • Add a list of steps to show the functionality of your feature For example:
    • Run the application
    • Tap the (+) button
    • Paste a tweet etc...

    Notes

    • Anything else that should be noted about how you implemented this feature?

    Screenshot

    • Add a screenshot of your new feature! OR show a screen recording of it in action
    opened by DominatorVbN 0
  • Added documentation for all remaining functions in codebase

    Added documentation for all remaining functions in codebase

    Progress / Closed on issue #80 Documentation

    • Referred to the DocumentationAndComments.md for documentation practices.
    • Added documentation for the remaining functions, extensions in the codebase

    Notes

    • I have tried my best to add documentation for the remaining functions in the codebase
    • If you find any irregularity in documentation, I will try to improve it for sure
    hacktoberfest-accepted 
    opened by ankurwasnik 1
Owner
Mikaela Caron
iOS Engineer
Mikaela Caron
Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principles altogether. Protocol oriented development has been followed.

BreakingBad BreakingBad API doc Implemented MVVM-C (Coordinator) architecture pattern for the project. Which is satisfying SOLID principples altogethe

Dhruvik Rao 2 Mar 10, 2022
This is a brain teaser app I created as part of my course with Paul Hudson.

RockPaperScissorBrainTeaser This is a brain teaser app I created as part of my course with Paul Hudson. In this app my challenges were: Each turn of t

Alex Diaz 1 Nov 30, 2021
A document-based SwiftUI application for viewing and editing EEG data, aimed at making software for viewing brain imaging data more accessible.

Trace A document-based SwiftUI application for viewing and editing EEG data, aimed at making software for viewing brain imaging data more accessible.

Tahmid Azam 3 Dec 15, 2022
An IOS app that shows big 6 different animals from different National Parks from Africa, App available for mactosh

An IOS app that shows big 6 different animals from different National Parks from Africa, App available for mactosh. Africa was developed using SwiftUI

wykee2 2 Apr 2, 2022
A MacOS app created to annoy users so users will go to bed during bedtime hours

A MacOS app created to annoy users so users will go to bed during bedtime hours. Developed for me as a school project.

Helen Dun 1 Jan 17, 2022
macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.

Download Full Installer This is a Swift UI implementation of my fetch-installer-pkg script. It will list the full macOS Big Sur (and later) installer

Armin Briegel 654 Dec 31, 2022
A simple, but powerful UI patcher for macOS Big Sur designed for everyone.

What is Patched Sur? Patched Sur is a UI patcher for macOS Big Sur, designed to make it easy to run macOS 11 on unsupported Macs. This patcher hopes t

Ben 274 Dec 24, 2022
🦙This repository keeps alive the famous skin of Winamp 5, Big Bento!

Latest Version: 1.2.8 (Changelog) Winamp Big Bento Redux This repository keeps alive the famous skin of Winamp 5, Big Bento by updating some componets

null 5 Aug 21, 2022
NewsApp - MVVM pattern have been used

NewsApp MVVM pattern have been used. All features are working properly as suppose to. Alamofire, Kingfisher, lottie-ios and IQKeyboardManagerSwift pod

Uğur Can GEDİK 0 Jun 6, 2022
KHabit an open source, pure and minimalistic app which helps you maintain productive habits, and nothing more.

an open source, pure and minimalistic app which helps you maintain productive habits, and nothing more. The app is completely open source, it does not contain in-app or ads, and does not track the user in any way.

Stefano Bertoli 42 Dec 17, 2022
an open source, pure and minimalistic app which helps you maintain productive habits, and nothing more.

KHabit an open source, pure and minimalistic app which helps you maintain productive habits, and nothing more. The app is completely open source, it d

Stefano Bertoli 17 May 5, 2021
iCome Out is an open source project of an unofficial Pornub app for iPhone and iPad

iCome Out is an open source project of an unofficial Pornub app for iPhone and iPad, written in Swift with some cool features Getting Started Prerequi

Anon 3 Dec 1, 2022
An open-source app which can help you record income and expense

MoneyPlus An open-source app which can help you record income and expense. 中文 0x00 Introduction First quick devolopment in iOS using Swift programmati

FakeCoder 23 Oct 17, 2022
Free & Open source To-Do app for iOS

Summary I tried to make a To-Do application for my education graduation project. Table of contents Technologies Features Screenshots Installation For

Enes Nurullah Kendirci 3 Oct 25, 2021
iOS Open-Source Telematics App with Firebase© integration

Open-source telematics app for iOS. The application is suitable for UBI (Usage-based insurance), shared mobility, transportation, safe driving, tracking, family trackers, drive-coach, and other driving mobile applications

Damoov 17 Dec 11, 2022
Super basic iOS app to browse open-source-ios-apps

Super basic iOS app to browse open-source-ios-apps

null 76 Nov 28, 2022
A open source Swift app for iOS 13 that allows you to check your NFC transit card information. Written with SwiftUI.

ABANDONED Metrodroid, which TransitPal was heavily inspired by, now has its own fully functional iOS app! It should be in the App Store "soon". I stro

Robbie Trencheny 132 Jun 30, 2022
OctoPod is a free open source iPhone/iPad app for OctoPrint

OctoPod OctoPod is a free open source iPhone/iPad app for OctoPrint. Build Instructions Download Xcode You will need to install Swift 5.0 and Xcode 11

Gaston Dombiak 193 Dec 30, 2022
Open Source Project of LOST Locations iOS app.

LOST Location Description: LOST Location is a fan made app designed for people visiting Honolulu, Hawaii. This app lists different locations used to s

Adrien Villez 9 Feb 10, 2022