niochat / nio Goto Github PK
View Code? Open in Web Editor NEW๐ฌ Nio is an upcoming matrix client for iOS.
Home Page: https://nio.chat
License: Mozilla Public License 2.0
๐ฌ Nio is an upcoming matrix client for iOS.
Home Page: https://nio.chat
License: Mozilla Public License 2.0
Running the fastlane action on pushes with a beta tag. Probably something along the lines of the following. This will also need all necessary authentication information in the repo secrets and might be interesting to setup with correct code-signing config.
name: Release Beta
on:
push:
branches: master
tags: builds/beta/*
jobs:
build:
runs-on: macos-latest
steps:
- name: fastlane
uses: maierj/[email protected]
with:
lane: beta
GitHub docs on filtering branches/tags in action events: https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#onpushpull_requestbranchestags
GitHub action for fastlane: https://github.com/maierj/fastlane-action
Currently a room is being completely marked as read on open. Is this what other messengers do? Probably.
What's still necessary:
@regexident recently brought up that the Apache License 2.0 might be problematic regarding usage of Nio by others and recommended the MPL-2 instead, being a non-viral GPL. Forks of Nio would have to make their changes available whilst keeping ownership of everything else if I understood it correctly.
Would this change be ok with all current contributors? @regexident @aaronraimist @sn3ek?
What things should be included?
Anything else?
Just something to think about for the future. Some people don't like the bubble style and prefer something closer to what Riot shows right now.
Manual beta releases are cumbersome. I should be using fastlane or something similar. In a perfect world this would be run as part of a GitHub action on creating a new tag containing the string "beta".
See also https://github.com/marketplace/actions/fastlane-action.
Weird title. The idea is to conditionally change the message padding and display of sender (in groups) based on if the message before is from the same sender. The sender should only be displayed once, messages from the same sender should be padded less in between.
See also: https://stackoverflow.com/questions/56760335/round-specific-corners-swiftui
On app start the login view is shown during the login process. After this the sync process is not done though, which should be indicated by some kind of UI. Ditto has a very cool banner for this, maybe something along those lines? Alternatively just an activity indicator somewhere.
Ideally, the entire "restoring session" full screen view should not be necessary. The data is already there, it's just blocking while the mx session is authenticating, which is imho totally part one of the sync step that follows anyway. A chat app obviously shouldn't have a fullscreen loading view that takes seconds to dismiss before showing you your messages. Also, it fails if there's no internet connection, which is even worse.
Currently a limitation of SwiftUI, but maybe it's time to replace it with a UIKit reimplementation.
Great for iPad and simulator usage.
On sending a message the message text field is cleared, but the message isn't shown in the history until it's fully sent. This can sometimes take a few seconds, which is awkward. Riot shows the message with an alternate text color in this case.
This uses the local echo events that are passed to the Matrix SDK APIs.
Especially applies to Nio being used on iPad with an external keyboard.
Just like for iMessage or Telegram and probably other apps as well. It sucks to swipe the message list in from the side.
Ideally on demand when reaching the top of the scroll view. But more events than are shown currently should be shown by default as well.
Just to track all the ways the current reversed scrollview used for conversations is weird ๐
Add a setting that, if enabled, causes foreign messages in groups to have separate background (or just author name label) colors based on their sender to be easily distinguishable from another. Basically what Signal for Android does.
Colors should obviously be deterministically based on sender MXIDs. I don't think there's a need for anybody to be able to influence how they appear on another device, which would also make this much more complicated.
cc @sn3ek
The current AppState handling feels rather cumbersome and tedious to work with.
cc @jkrbs
See iMessage.
Right now they're being shown as new messages with the outdated message still intact, obviously not ideal.
Who would've guessed that this is an essential feature ๐
Some events cause Nio to dismiss the RoomView and go back to the RecentRoomsView. It has happened with new sent messages, new received messages and also new events in other rooms. Even with typing events!
I've not been able to reproduce this 100% with anything, but in tests it's definitely occurred more often on first events from a specific sender in a row.
Not quite sure what's happening here, but typing in the message composer feels choppy somehow.
Icky topic. Nio (obviously) uses encryption. It would probably make sense to copy whatever Riot is doing here, I think I've seen some info on that floating around somewhere.
Also make sure to add the necessary information directly to the app's metadata to make ASC happy and require less manual steps.
On new betas (and later releases) including the changelog in #niochat:matrix.org.
See branch fastlane-matrix-action for a first try at a custom matrix action for that.
Feature for the far future when the macOS client exists. Draft messages should be synced transparently over the user's iCloud account.
Currently fastlane only uploads the beta to ASC, but I haven't automated any further steps, primarily because of the export compliance step in ASC (see #56). Ideally fastlane would upload the build, have it be available for internal testing, push it through review if necessary (and if not) make it directly available for public beta testing.
They're being lost at every app start, which is obviously "not ideal" ๐
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.