-
Notifications
You must be signed in to change notification settings - Fork 2.1k
T3 Code Mobile [WIP] #2013
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
T3 Code Mobile [WIP] #2013
Changes from all commits
493fbfa
9bebd28
a22cb05
12fc9b7
d686613
da6ea88
97263c5
034a8bc
932ec19
dc994a1
3fe96f1
1985d2c
cace578
4e38d93
664768b
95038c1
9b9fe0d
0385713
3aaa338
96897ab
b4615a8
93ec45e
057d3f2
f239d3a
5225844
7d20cb9
0c1ccda
9236802
f73b8bc
d2c7dbf
ef1ed88
f29a9ff
4b6bae5
87f7434
b357476
7791f47
040c806
7bea682
fd93d7f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,7 +6,8 @@ | |
| "node_modules", | ||
| "bun.lock", | ||
| "*.tsbuildinfo", | ||
| "**/routeTree.gen.ts" | ||
| "**/routeTree.gen.ts", | ||
| "apps/mobile/uniwind-types.d.ts" | ||
| ], | ||
| "plugins": ["eslint", "oxc", "react", "unicorn", "typescript"], | ||
| "jsPlugins": ["./oxlint-plugin-t3code/index.ts"], | ||
|
|
@@ -16,6 +17,7 @@ | |
| "perf": "warn" | ||
| }, | ||
| "rules": { | ||
| "unicorn/no-array-sort": "off", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Global lint rule disable weakens protection across entire codebaseLow Severity Disabling Reviewed by Cursor Bugbot for commit b4615a8. Configure here. |
||
| "react-in-jsx-scope": "off", | ||
| "eslint/no-shadow": "off", | ||
| "eslint/no-await-in-loop": "off", | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| root = false | ||
|
|
||
| [*.{kt,kts}] | ||
| indent_size = 2 | ||
| ktlint_code_style = android_studio | ||
| ktlint_standard_blank-line-between-when-conditions = disabled | ||
| ktlint_standard_class-signature = disabled | ||
| ktlint_standard_function-signature = disabled | ||
| ktlint_standard_import-ordering = disabled | ||
| ktlint_standard_multiline-expression-wrapping = disabled | ||
| ktlint_standard_trailing-comma-on-call-site = disabled | ||
| ktlint_standard_when-entry-bracing = disabled |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files | ||
|
|
||
| # dependencies | ||
| node_modules/ | ||
|
|
||
| # Expo | ||
| .expo/ | ||
| dist/ | ||
| web-build/ | ||
| expo-env.d.ts | ||
|
|
||
| # Native | ||
| .kotlin/ | ||
| *.orig.* | ||
| *.jks | ||
| *.p8 | ||
| *.p12 | ||
| *.key | ||
| *.mobileprovision | ||
|
|
||
| # Metro | ||
| .metro-health-check* | ||
|
|
||
| # debug | ||
| npm-debug.* | ||
| yarn-debug.* | ||
| yarn-error.* | ||
|
|
||
| # macOS | ||
| .DS_Store | ||
| *.pem | ||
|
|
||
| # local env files | ||
| .env*.local | ||
|
|
||
| # typescript | ||
| *.tsbuildinfo | ||
|
|
||
| # generated native folders | ||
| /ios | ||
| /android |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| included: | ||
| - ios/T3Code | ||
| - modules/t3-terminal/ios | ||
| - modules/t3-review-diff/ios | ||
|
|
||
| excluded: | ||
| - ios/Pods | ||
| - ios/build | ||
| - modules/t3-terminal/Vendor | ||
|
|
||
| reporter: xcode | ||
|
|
||
| disabled_rules: | ||
| - file_length | ||
| - function_body_length | ||
| - identifier_name | ||
| - line_length | ||
| - lower_acl_than_parent | ||
| - modifier_order | ||
| - trailing_comma | ||
| - type_body_length | ||
|
|
||
| opt_in_rules: | ||
| - array_init | ||
| - closure_end_indentation | ||
| - closure_spacing | ||
| - collection_alignment | ||
| - contains_over_filter_count | ||
| - contains_over_filter_is_empty | ||
| - contains_over_first_not_nil | ||
| - contains_over_range_nil_comparison | ||
| - empty_collection_literal | ||
| - empty_count | ||
| - empty_string | ||
| - enum_case_associated_values_count | ||
| - fallthrough | ||
| - fatal_error_message | ||
| - first_where | ||
| - flatmap_over_map_reduce | ||
| - force_unwrapping | ||
| - implicitly_unwrapped_optional | ||
| - last_where | ||
| - legacy_multiple | ||
| - legacy_random | ||
| - operator_usage_whitespace | ||
| - overridden_super_call | ||
| - prefer_self_type_over_type_of_self | ||
| - private_action | ||
| - private_outlet | ||
| - prohibited_super_call | ||
| - reduce_into | ||
| - redundant_nil_coalescing | ||
| - sorted_first_last | ||
| - static_operator | ||
| - toggle_bool | ||
| - unneeded_parentheses_in_closure_argument | ||
| - vertical_parameter_alignment_on_call | ||
| - yoda_condition |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| brew "swiftlint" | ||
| brew "ktlint" | ||
| brew "detekt" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # T3 Code Mobile | ||
|
|
||
| > [!WARNING] | ||
| > T3 Code Mobile is currently in development and is not distributed yet. If you want to try it out, you can build it from source. | ||
|
|
||
| ## Quickstart | ||
|
|
||
| > [!NOTE] | ||
| > Uses native modules so using Expo Go is not supported. You need to use the Expo Dev Client. | ||
|
|
||
| This app has three variants: | ||
|
|
||
| - `development`: Expo dev client, installable side-by-side as `T3 Code Dev` | ||
| - `preview`: persistent internal preview build, installable side-by-side as `T3 Code Preview` | ||
| - `production`: store/release build as `T3 Code` | ||
|
|
||
| Run commands from `apps/mobile`. | ||
|
|
||
| ## Development | ||
|
|
||
| Start Metro for the dev client: | ||
|
|
||
| ```bash | ||
| bun run dev:client | ||
| ``` | ||
|
|
||
| Build and run the local iOS dev client: | ||
|
|
||
| ```bash | ||
| bun run ios:dev | ||
| ``` | ||
|
|
||
| Build and run the local iOS preview app: | ||
|
|
||
| ```bash | ||
| bun run ios:preview | ||
| ``` | ||
|
|
||
| Force the review diff highlighter engine: | ||
|
|
||
| ```bash | ||
| EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=javascript bun run ios:dev | ||
| ``` | ||
|
|
||
| `javascript` is the default and recommended setting for the review diff screen. Set `EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=native` only when you explicitly want to test the native Shiki engine. | ||
|
|
||
| Inspect the resolved Expo config for a variant: | ||
|
|
||
| ```bash | ||
| bun run config:dev | ||
| bun run config:preview | ||
| ``` | ||
|
|
||
| Run static checks for mobile native code: | ||
|
|
||
| ```bash | ||
| node ../../scripts/mobile-native-static-check.ts | ||
| ``` | ||
|
|
||
| The native lint task runs SwiftLint for Swift plus ktlint and detekt for Kotlin. Missing native tools are reported as warnings and skipped locally. CI installs the default toolset from `apps/mobile/Brewfile` before running the native checks. | ||
|
|
||
| ## EAS Builds | ||
|
|
||
| Create a cloud dev-client build: | ||
|
|
||
| ```bash | ||
| bun run eas:ios:dev | ||
| ``` | ||
|
|
||
| Create a persistent preview build: | ||
|
|
||
| ```bash | ||
| bun run eas:ios:preview | ||
| ``` | ||
|
|
||
| Android equivalents: | ||
|
|
||
| ```bash | ||
| bun run eas:android:dev | ||
| bun run eas:android:preview | ||
| ``` |


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI lint step silently skips execution with
nodeMedium Severity
The CI step runs
node scripts/mobile-native-static-check.ts, but the script's entry-point guard usesimport.meta.main— a Bun/Deno API that doesn't exist in Node.js (it evaluates toundefined/falsy). This means the lint step will load the module but never callCommand.run, silently passing without executing any checks. The rest of the project usesbunto run scripts; this step likely needsbuninstead ofnode.Additional Locations (1)
scripts/mobile-native-static-check.ts#L201-L208Reviewed by Cursor Bugbot for commit ef1ed88. Configure here.