Giter Club home page Giter Club logo

mastonaut's Introduction

About

This is a fork of Mastonaut by @brunophilipe, whose original marketing page you can still look at here. His latest version 1.3.9 can still be installed from the App Store.

Some features since 1.3.9

(As of 1.7.0.)

Accessibility

  • The font size of statuses can be increased.
  • Assorted accessibility improvements

Composing

  • Edit your toots
  • Autocomplete for hashtags (1.3.9 already had autocomplete for user names)

Notifications

  • Filter notifications by type (for example, to only see mentions)

Search

  • Search for (already known) toots by text or their URL

Timeline

  • Pull to refresh
  • View a list as a column
  • View your favorites or bookmarks as a column
  • Follow hashtags in the Home timeline

Viewing

  • See if a toot has been edited, and view previous versions
  • The font face and size can be customized.
  • Interaction statistics (how many replies, boosts, favorites) can be seen

πŸ‘©πŸ½β€πŸ’» End Users: Install

To use it, you just want to download 1.7 here.

πŸ—ΊοΈ Roadmap

This is purely a hobbyist effort, so I can't really promise anything. I try to do a new release every month or two.

πŸ‘©πŸ»β€πŸŒΎ Developers: Build

These are instructions for if you want to tinker with the code.

The following instructions assume Xcode 14.2 on macOS 13.4. (Note that it may not currently build in Xcode 14.3.x.)

Setup

  • You need XcodeGen. If you have HomeBrew, just run brew install xcodegen.

  • Inside the Mastonaut subdir, run xcodegen.

  • Copy the file userspecific.template.xcconfig to userspecific.xcconfig, and open that file.

  • Set MASTONAUT_BUNDLE_ID_BASE to a bundle ID for the app that works with your Apple ID.

  • Enter your Team ID instead of the xxxxxxxxxx next to DEVELOPMENT_TEAM (It looks something like 74J34U3R6X).

  • Do not check in your changes to userspecific.xcconfig!

That should be it.

Bundle IDs

The bundle ID base is used because Mastonaut consists of multiple projects, which use an app group to share information. Given a MASTONAUT_BUNDLE_ID_BASE of com.example.mastonaut and a DEVELOPMENT_TEAM of ABCDEFGH:

  • the main app will be com.example.mastonaut.mac
  • the macOS Sharing extension will be com.example.mastonaut.mac.QuickToot
  • the Core Data database shared by the two above will be stored in ~/Library/Group Containers/ABCDEFGH.com.example.mastonaut/Mastonaut/Mastonaut.sqlite
  • Keychain credentials will be prefixed ABCDEFGH.com.example.mastonaut.keychain

Acknowledgments

The acknowledgments in the about box are currently built manually. If you add dependencies, don't forget to edit one of the *Acknowledgments structs, probably SwiftPMAcknowledgements.

Pitfalls

  • Make sure MastodonKit is fetched as a git submodule. (For example, Xcode's git clone functionality seems to not do this!) This is a custom fork, not a package available through SwiftPM or similar.

  • The .xcconfig will auto-append .mac and other suffixes to the MASTONAUT_BUNDLE_ID_BASE, so you should pick something like com.example.mastonaut (replacing com.example with whatever reverse domain name you have set up for your account).

  • If you don't know your Team ID, go into Signing & Capabilities in your project and select your team, then your UI will show it under 'App Groups'. Then revert the project file so it will use the setting from the xcconfig and you don't have a lurking change in your checkout.

Project Structure

The project you'll be working with is Mastonaut/Mastonaut.xcodeproj. Keep in mind this is effectively read-only: to preserve changes (other than, say, adding files, which works through wildcards), you need to edit the Mastonaut/project.yml instead.

The main application is Mastonaut.

QuickToot is a macOS app extension, specifically for sharing.

QuickToot and Mastonaut use CoreTootin as a common library. GUI code that's required by both belongs here.

The underlying API client is largely implemented in (a custom fork of) MastodonKit, which is referenced as a git submodule.

  • If you're using a personal developer ID and get an error like Personal development teams, including "Your Name Here", do not support the Push Notifications capability., you may have to go Signing and Capabilities and delete the "Push Notifications" capability by clicking the little trash can next to it. Do not check in this change.

mastonaut's People

Contributors

chucker avatar uliwitness avatar sbeitzel avatar th-in-gs avatar galad87 avatar

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.