GithubHelp home page GithubHelp logo

matthewpalmer / charter Goto Github PK

View Code? Open in Web Editor NEW
525.0 525.0 77.0 34.4 MB

A Swift mailing list client for iPhone and iPad

Swift 69.15% Ruby 0.89% JavaScript 19.49% Shell 0.51% HTML 9.85% C 0.12%

charter's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

charter's Issues

Localisation branch

Hi,
I'm sorry to bother but I took the liberty to localize your app to Portuguese and Spanish. My problem is that I created a branch for it, directly from your repository instead of forking first.
Only noticed it when was pushing the commit.

Are you interested in localizing it as you say in the Readme?
If so, any advice on how to handle it now or should I just create the PR?

Thank contributors in release notes and README

I want to cat the contents of contributors file onto the end of the readme, and make sure the contents of the contributors file goes out in the release notes for that version.

Todo

  • add contributors so far to the contributors file
  • write a script to do this
  • copy Moya's contributing guidelines/process (i.e. mention in readme that I'll give push access plus community guidelines too)

Miscellaneous smaller tasks

  • think about whether the data sources to the various view controllers should be turned into protocols and injected (at this stage, I'm thinking yes, but it's maybe a little tricky because of the view lifecycle)
  • unit tests for thread detail data source
  • add tests for formatContent on the EmailFormatter class
  • remove various retain cycles that I've introduced
  • go through TODOs littered throughout the codebase and open issues or fix

Add backend

Add a backend for faster list refresh

  • add mail listener
  • parse emails
  • present emails as REST API
  • auth for REST API
  • partition emails into threads if they have no references or in-reply-to. also handle the Dave Abrahams case where he doesn't set in-reply-to. Hmm... not sure what to do here yet, but definitely need to be better at handling this so that we get proper threading all the time. Also, provide a /threads endpoint for a list that just has the root emails for each thread

New feature

  • add archive URL so we can link to the posts on the swift lists website

Current thinking for the archive URL approach:

Compute a new message's archive URL from the previous message in the db. Every x minutes check that the most recent document's archive URL matches the page it points to. If it matches, we're ok, and continue. If it does not match, find the message that the page references, set the archive URL for that page, and then recompute all archive URLs for messages that come after that message (by date).

This won't ensure 100% accuracy, but bounds inaccuracy within hour-long periods and minimises the number of requests we have to make against the server

  • Add tests for backend
  • Clean up logging
  • Clean up db instantiation
  • Open source the backend (open sourcing might take a little while to get all the config stuff set up... also, #7 ?)

Switch to Storyboards

One of the things I noticed when watching @ortaโ€™s tvOS app code review video was how helpful it was to have a storyboard to look at when first seeing the codebase. I want new contributors to this app to be able to get a quick overview of the app flow, and a storyboard is the best way to do that. While it might not be 100% the best technical choice, the value it'll add to the community is too much to ignore.

Fix conversation threading issues

Conversations are not properly threaded if the In-Reply-To header isn't set. This should be fixed as part of #2.

  • Add descendants field to the email document

Monorepo?

Prefer the idea of a monorepo over 5 different repos for different modules and stuff, would make contributing a lot easier.

Things I need to think about

  • how to deploy the node server?
  • multiple cocoapods within a repo?
  • is it weird to have the app and the server next to eachother in the directory? [don't think so as long as they stay separated]

Add the ability to star a conversation

This won't be ready for a while.

Need to figure out precisely what a star means:

  • appears at the top of the threads list?
  • receive push notifications?
  • adds visual identifier next to message?
  • more like a "read later" thing? can you view a list of all starred convos? do we need user accounts?
  • do we have star counts for all convos? can people order threads by number of stars?

Improve inline quote UI

Currently inline quotes just throw up a fixed-size popover. It'd be cool to size this approximate to the content being displayed.

Also, this UI is pretty bad on iPad

[Undecided] Move away from redux/reswift architecture

Considering moving away from redux/reswift. Reasons:

  • not everyone is familiar with it, so might increase barrier to contribution
  • I don't want to couple my view controllers to the store, but I'd also rather not create a controller for every piece of state
  • the cool thing about react + redux is that you can just pass whatever props without worrying about re-rendering. With UIKit we're going to need to do comparisons of next/previous state to determine when to re-render. I think this would introduce state (esp. w/o a pure render mixin)
  • working around UIKit introduces certain workarounds/hacks, e.g. we'd have to re-implement the "Back" button for UINavigationController/Bar to propagate the necessary state change.

I'm definitely convinced that reswift/redux is a great way to write apps, and having a single state receptacle is the way we'll be doing it in the future, but right now for this project I'm not convinced it's a perfect fit. Still thinking it over.

Add license

99% chance it'll be MIT, just need to think about it for a sec

CollapsibleTextView repo not found

I try to run pod install but get this error:

!] Error installing CollapsibleTextView
[!] /usr/bin/git clone https://github.com/matthewpalmer/CollapsibleTextView /var/folders/hk/kjr928bd31g6r9k1qc38y6r00000gn/T/d20160220-4444-1xho9ra
Cloning into '/var/folders/hk/kjr928bd31g6r9k1qc38y6r00000gn/T/d20160220-4444-1xho9ra'...
remote: Repository not found.
fatal: repository 'https://github.com/matthewpalmer/CollapsibleTextView/' not found

Add labels in table view

People often put [Idea] and [Review] and stuff in the subject line for their messages. It'd be cool to turn these into coloured labels (c/f github issue labels) on the message, and maybe eventually search for them

1.1 release

  • cut 1.1 release branch
  • update metadata with fastlane
  • test 1.0 app store -> 1.1 migration
  • write release notes
  • submit for app review

Stopped updating?

It seems the app doesn't display any message that was sent after June 8th.

I tried uninstalling the reinstalling the app but the issue didn't go away. Maybe there's something wrong with the app's backend?

Add archive URLs

  • Add the ability to link from a email in the app to the email on the website.
  • Add to backend/database
  • Add to app

Question about contribution

I'm sorry but I have a question if I want to contribute to this repository, which branch do I need to track or modify.

I've tried the develop branch, but the app crashed when I click any of the Mailing Lists item, the cause seems to be the realm, do I need to run the backend myself or do I need to do some additional configuration?

I am interested in this repository, and I want to contribute. It will be great if you can give me some additional information. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.