Skip to content

Commit ef0bb93

Browse files
committed
Merge branch 'develop' into hm/unreads-polish-desktop
2 parents 87deb90 + 17e9dc4 commit ef0bb93

File tree

23 files changed

+2891
-3774
lines changed

23 files changed

+2891
-3774
lines changed

README.md

+22-42
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,41 @@
1-
# Landscape apps
1+
# Tlon Messenger (TM)
22

3-
## Groups
3+
Tlon Messenger is a new kind of messenger which you can fully control. The user ID is your cryptographic property, while all your data is stored in a single file, yours to keep and yours to take. With TM, you own a distinct node on the network, which you can use to host a community, a blog, or run any other computation. This repository contains the source code of the two main components of TM:
44

5-
Start, host, and cultivate communities. Own your communications, organize your
6-
resources, and share documents. Groups is a decentralized platform that
7-
integrates with Talk, Notebook, and Gallery for a full, communal suite of tools.
5+
- TM client, which is available on iOS, Android and Desktop
6+
- TM backend, which is deployed on the Urbit platform
87

9-
## Talk
8+
## Client
109

11-
Send encrypted direct messages to one or many friends. Talk is a simple chat
12-
tool for catching up, getting work done, and everything in between.
10+
The client is written in React Native. The mobile version is available on iOS and Android, while the desktop version is available via browser (with a desktop app planned soon for macOS, Linux, and Windows).
1311

14-
## Notebook
12+
## Backend
1513

16-
Notebook is a standard short and long form text editor. Within Groups, you can
17-
use Notebook to write, edit, and publish text.
14+
The TM backend consists of a number of independent components, called agents.
1815

19-
## Gallery
16+
### %groups
2017

21-
Gallery is a versatile repository for collective knowledge and references you
22-
want to share or remember. Within Groups, you can use Gallery to collect links,
23-
images, media, and even random musings.
18+
%groups allows creation of communities that aggregate distinct communication channels. Each group sets its own rules by defining user roles and the entry policy, and defines a set of channels available for group members to subscribe to.
2419

25-
---
20+
### %channels
2621

27-
## Developer documentation
22+
%channels facilitates communication between any number of parties by designating one node as the host. A channel can function as a group chat, a gallery or a notebook. Channels can be further customized with hooks, which allow you to program custom behaviours triggered by various channel events.
2823

29-
This project uses the [formal comment spec](https://developers.urbit.org/reference/hoon/style#comments-and-unparsed-bytes)
30-
for all Hoon code to ensure compatibility with
31-
[doccords](https://github.com/urbit/urbit/pull/5873).
24+
### %chat
3225

33-
Additionally, detailed documentation is available in the [Docs Landscape
34-
app](https://urbit.org/applications/~pocwet/docs) if you have both Docs and
35-
Groups installed on a running Urbit ship.
26+
%chat is a direct-message agent, which, unlike %channels, establishes peer-to-peer connection between two parties.
3627

37-
Visit this repository's wiki for [an overview of how to use Landscape and
38-
its apps](https://github.com/tloncorp/tlon-apps/wiki).
28+
### %contacts
29+
%contacts manages the user profile ands track connections to other users, constructing the user's social graph as they interact with others on the network.
3930

40-
## Integrating with Groups agents
31+
### %activity
4132

42-
The `%groups` desk provides several simple agents with discrete concerns. This list may expand over time.
33+
%activity is TM's activity tracker. It aggregates events sent by other agents and alerts the user based on his notification settings.
4334

44-
- `%groups` - The organizational substrate for constructing, joining, finding,
45-
and managing groups (different than the in-group activity of chatting,
46-
writing, or collecting)
47-
- `%groups-ui` - Optimized scries for the Groups UI
48-
- `%chat` - 1:1 and multi-DM capabilities for Talk and Chat channels in Groups
49-
- `%diary` - Notebook channels in Groups
50-
- `%heap` - Gallery channels in Groups
51-
- `%notify` - Hooks for iOS push notifications
52-
- `%grouper` - Handler for Lure invitiations
35+
### %profile
5336

54-
All actions are performed with
55-
[pokes](https://developers.urbit.org/reference/glossary/poke).
56-
See the on-ship developer documentation for more details.
37+
%profile allows the user to expose a personal webpage accessible through their node's URL. The webpage can feature a preview of user's favorite groups or widgets registered by any other agents.
5738

58-
## Use of Landscape agents
39+
### %expose
5940

60-
At the moment, Groups and Talk make use of `%settings`, `%storage`, `%hark`,
61-
and `%contacts` agents in the `%landscape` desk.
41+
%expose allows the user to publish the content available in one of the channels to the clearweb.

apps/tlon-mobile/android/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ build/
1010
local.properties
1111
*.iml
1212
*.hprof
13+
.cxx/
1314

1415
# Bundle artifacts
1516
*.jsbundle

apps/tlon-mobile/android/app/build.gradle

+3-4
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,6 @@ android {
8989
compileSdk rootProject.ext.compileSdkVersion
9090
versionCode 108
9191
versionName "5.3.1"
92-
93-
buildConfigField("boolean", "REACT_NATIVE_UNSTABLE_USE_RUNTIME_SCHEDULER_ALWAYS", (findProperty("reactNative.unstable_useRuntimeSchedulerAlways") ?: true).toString())
9492
}
9593
signingConfigs {
9694
debug {
@@ -111,6 +109,7 @@ android {
111109
shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false)
112110
minifyEnabled enableProguardInReleaseBuilds
113111
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
112+
crunchPngs (findProperty('android.enablePngCrunchInReleaseBuilds')?.toBoolean() ?: true)
114113
}
115114
}
116115
packagingOptions {
@@ -173,8 +172,6 @@ dependencies {
173172
}
174173
}
175174

176-
implementation("com.facebook.react:flipper-integration")
177-
178175
if (hermesEnabled.toBoolean()) {
179176
implementation("com.facebook.react:hermes-android")
180177
} else {
@@ -184,6 +181,8 @@ dependencies {
184181
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
185182
implementation("androidx.security:security-crypto-ktx:1.1.0-alpha06")
186183
implementation("com.android.volley:volley:1.2.1")
184+
implementation "com.google.firebase:firebase-messaging"
185+
187186

188187
// Branch.io
189188
implementation("io.branch.sdk.android:library:5.9.0")

apps/tlon-mobile/android/app/src/main/java/io/tlon/landscape/MainApplication.java

-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import androidx.annotation.NonNull;
77
import androidx.lifecycle.ProcessLifecycleOwner;
88

9-
import com.facebook.react.flipper.ReactNativeFlipper;
109
import com.facebook.react.PackageList;
1110
import com.facebook.react.ReactApplication;
1211
import com.facebook.react.ReactNativeHost;
@@ -72,9 +71,6 @@ public void onCreate() {
7271
// If you opted-in for the New Architecture, we load the native entry point for this app.
7372
DefaultNewArchitectureEntryPoint.load();
7473
}
75-
if (BuildConfig.DEBUG) {
76-
ReactNativeFlipper.initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
77-
}
7874
ApplicationLifecycleDispatcher.onApplicationCreate(this);
7975
ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleManager());
8076

apps/tlon-mobile/android/build.gradle

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@ buildscript {
66
minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '28')
77
compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34')
88
targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34')
9-
kotlinVersion = findProperty('android.kotlinVersion') ?: '1.8.10'
9+
kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.23'
1010

11-
ndkVersion = "25.1.8937393"
11+
ndkVersion = "26.1.10909125"
1212
}
1313
repositories {
1414
google()
1515
mavenCentral()
1616
}
1717
dependencies {
18-
classpath('com.google.gms:google-services:4.4.1')
18+
classpath('com.google.gms:google-services:4.4.2')
1919
classpath('com.android.tools.build:gradle')
2020
classpath('com.facebook.react:react-native-gradle-plugin')
21+
classpath('org.jetbrains.kotlin:kotlin-gradle-plugin')
2122
classpath('com.google.firebase:firebase-crashlytics-gradle:2.9.9')
2223
}
2324
}

apps/tlon-mobile/android/gradle.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ android.useAndroidX=true
2525
# Automatically convert third-party libraries to use AndroidX
2626
android.enableJetifier=true
2727

28-
# Version of flipper SDK to use with React Native
29-
FLIPPER_VERSION=0.125.0
30-
28+
# Enable AAPT2 PNG crunching
29+
android.enablePngCrunchInReleaseBuilds=true
30+
3131
# Use this property to specify which architecture you want to build.
3232
# You can also override it from the CLI using
3333
# ./gradlew <task> -PreactNativeArchitectures=x86_64

apps/tlon-mobile/android/gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

apps/tlon-mobile/app.config.ts

+3
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ export default ({ config }: ConfigContext): ExpoConfig => ({
6868
runtimeVersion: '4.0.2',
6969
},
7070
plugins: [
71+
'expo-asset',
72+
'expo-localization',
73+
'expo-secure-store',
7174
'@react-native-firebase/app',
7275
'@react-native-firebase/crashlytics',
7376
'@react-native-firebase/perf',

apps/tlon-mobile/eas.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,4 @@
115115
}
116116
}
117117
}
118-
}
118+
}

0 commit comments

Comments
 (0)