Posts

Showing posts with the label TypeScript

A New Collection of Thoughtful Learning Apps — Now Available on iOS & Android

Image
I’m excited to share a set of mobile apps I’ve recently completed and published on both the Google Play Store and the Apple App Store. These apps are designed with a simple goal in mind: to make meaningful, structured content more accessible, whether you’re studying theology or improving your English vocabulary. 📱 Now Available on Both Platforms All apps are live and available for download: Google Play Developer Page: https://play.google.com/store/apps/dev?id=5835943159853189043 Apple App Store Developer Page: https://apps.apple.com/ca/developer/q-z-l-corp/id1888794100 📖 Theology & Confession Study Apps For those interested in Reformed theology and classical Christian teachings, I’ve developed a series of apps that present foundational texts in a clean, focused reading format: The Belgic Confession Canons of Dort Heidelberg Catechism Westminster Shorter Catechism Each app is designed to provide a distraction-free experience, making it easier to read, reflect, and revisit these im...

React Native 使用 TypeScript + Hermes 时 Android Release 构建报错解决方案

Image
React Native 使用 TypeScript + Hermes 时 Android Release 构建报错解决方案 如果你把 React Native 项目的入口文件从 index.js 改成了 index.ts ,然后在构建 Android Release 版本时失败,这篇文章可以帮你解决。 常见的报错包括: Task ':app:createBundleReleaseJsAndAssets' property 'entryFile' specifies file 'index.js' which doesn't exist. 或者: java.lang.OutOfMemoryError: Metaspace Execution failed for task ':react-native-xxx:lintVitalAnalyzeRelease' 这通常是由于入口文件未正确配置,以及 Gradle 内存不足导致的。下面是完整修复步骤。 1. 修复入口文件路径错误 React Native 默认查找 index.js ,如果你使用 TypeScript,需要告诉 Gradle 使用 index.ts 。 打开 android/app/build.gradle ,在 react {} 配置中加入: react { entryFile = file("../../index.ts") } 同时确认 package.json 中的入口文件: "main": "index.ts" 并在 metro.config.js 中支持 TypeScript: resolver: { sourceExts: ["js", "json", "ts", "tsx"] } 2. 解决 Gradle Metaspace 内存不足 Android 在 Release 构建时会运行 Lint 分析 React Native 库的 Kotlin 文件,默认内存太小会导致崩溃。 编辑 an...

Fixing React Native Android Release Build Errors with TypeScript & Hermes

Image
Fixing React Native Android Release Build Errors with TypeScript & Hermes If your React Native Android release build fails after renaming index.js to index.ts , you're not alone. This is one of the most common issues when modernizing a React Native project with TypeScript and Hermes. Here are the two major errors you’ll likely see: Task ':app:createBundleReleaseJsAndAssets' property 'entryFile' specifies file 'index.js' which doesn't exist. And later: java.lang.OutOfMemoryError: Metaspace Execution failed for task ':react-native-xxx:lintVitalAnalyzeRelease' Let’s fix both problems step by step. 1. React Native Can’t Find Your Entry File React Native expects your app’s entry file to be index.js . When you rename it to index.ts , Gradle doesn’t know where to look. Open android/app/build.gradle and add this inside the react {} block: react { entryFile = file("../../index.ts") } Also make sure your package...

Fixing React Native Path Alias Error: Unable to Resolve Module @/app/App

Image
Fixing React Native Path Alias Error: Unable to Resolve Module @/app/App The Problem If you're using path aliases (like @/ ) in your React Native project, you might encounter this frustrating error: ERROR Error: Unable to resolve module @/app/App from /path/to/project/index.ts: @/app/App could not be found within the project or in these directories: node_modules ../node_modules This happens even when your TypeScript configuration is correct and your IDE shows no errors. What's going on? Why This Happens The issue occurs because TypeScript and Metro (React Native's bundler) are two separate systems : TypeScript understands your path aliases through tsconfig.json Metro (the bundler) has no idea about these aliases unless you explicitly configure it Your IDE might show everything is fine because it use...