Add more features to the readme

This commit is contained in:
Thomas Ricouard 2023-12-29 12:31:34 +01:00
parent 5209ab80fc
commit f39f9e1363
6 changed files with 71 additions and 0 deletions

BIN
Images/accounts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 KiB

BIN
Images/dm.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 898 KiB

BIN
Images/editor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 819 KiB

BIN
Images/explore.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
Images/profile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

View file

@ -9,6 +9,9 @@ IceCubesApp is an open-source application for accessing the decentralized social
You can connect to any Mastodon instance, browse your timeline, interact with other users, and post updates and media.
It's multiplatform and works on iOS, macOS, iPadOS, and soon visionOS.
It has a dedicated UI with a sidebar on macOS and iPadOS.
## Features
### Timeline
@ -18,13 +21,33 @@ You can connect to any Mastodon instance, browse your timeline, interact with ot
* A navigation bar title menu lets you easily swap between your home, local, federated, and trending timeline.
* You can also easily access your lists, followed tags, and tag groups.
* Tag groups are custom timelines made of multiple tags, a feature unique to Ice Cubes.
* Quote post!
* You can also add a remote local timeline. A helpful feature to browse the public timeline of other instances. Another Ice Cubes only feature.
* Ice Cubes rely heavily on the streaming events of Mastodon to do stuff like showing new posts live in the home timeline and editing and deleting your posts.
* The timeline sync is semi-automatic; your position is sent to the Mastodon marker API, and from another device running Ice Cubes, you can resume your home timeline position.
* The home timeline is cached using the third-party library [Bodega](https://github.com/mergesort/Bodega). A lite SQLite wrappers. The current position is saved in user default, so when you switch accounts or launch the app, your cached home timeline and position are restored. Then new posts will be fetched and displayed with an unread counter.
* iCloud sync of tag groups, remote timelines and drafts.
* Server side filters support.
`Code` -> Status & Timeline package
### Editor / Composer
<img src="Images/editor.png" />
* Full-featured post editor.
* You can write threads up to 5 posts.
* Upload up to 4 images.
* AI-assisted tools using OpenAI API for text correction, hashtag generation, and more.
* Generate image description using AI!
* Custom emojis support.
* Add polls and content warnings.
* Save/restore from drafts.
* Use the Apple language detection feature to suggest the language before posting.
`Code` -> Status package -> StatusEditor component
`Code` -> OpenAIClient
### Notifications
<img src="Images/notifications.png" />
@ -44,10 +67,58 @@ You can connect to any Mastodon instance, browse your timeline, interact with ot
### Explore / Search
<img src="Images/explore.png" />
* Dedicated explore/search tab for trending users, tags, posts, and links.
* Easy access to all those categories from the top area.
* You can search for everything or filter by users, tags, and posts.
* See a graph for the activities on the trending tags.
* See more from each category to access the full-screen view.
`Code` -> Explore package
### Direct Messages
<img src="Images/dm.png" />
* Dedicated tab for direct/private messages.
* Chat like UI
* You can use the inline composer for a quick chat or the full editor.
`Code` -> Conversations package
### Profile
<img src="Images/profile.png" />
* Rich profile support.
* Fully access & tweak your privacy settings.
* Edit your profile, from your bio to your custom fields.
* Easy access to Mastometrics.
* Add a custom server-side note visible only to you for any profile.
* Translate the bio of any profile to your language.
* Easy access to edit your server-side timeline filters.
* Easy access to share your profile outside of the app.
`Code` -> Account package
### Multi Accounts
<img src="Images/accounts.png" />
* Support for an unlimited of Mastodon accounts.
* Easily browse/discover instances and log in!
* Swap account from any screen on iOS.
* Swap your account from the macOS/iPadOS sidebar with just one click.
* Full server-side and client-side account settings support.
* Swipe to delete an account from the settings.
* Safe authentication using Apple's `WebAuthenticationSession`
* The account token is securely stored in the keychain.
`Code` -> Account & AppAcount packages
## A note on the architecture
The project is split into different Swift Packages to make managing and maintaining the codebase easier. Each package focuses on a specific application aspect, such as the UI, network communication, or data models. This modular approach allows for easier collaboration and ensures the code is organized and easily understood.
It's a great starting point for learning SwiftUI. The app covers many of the basic concepts of SwiftUI, such as building layouts, working with data, and handling user interaction. By exploring the code, you can understand how to use SwiftUI in your daily life. Plus, the open-source nature of IceCubesApp means you can see how real-world applications are built and get a sense of best practices for using SwiftUI.