乐于分享
好东西不私藏

独立开发周记26: 泰语学习APP开始内测了

独立开发周记26: 泰语学习APP开始内测了

有一段时间没写了,主要是最近太忙了,最近上线了StudyThai APP的内测,发现问题远比我想象的复杂,跟很多事情一样,表面看起来不难,实则里面一堆坑。

flutter转向Expo

Expo是一个基于React Native封装的一个框架,因为之前flutter做壳APP整体的体验偏差,所以考虑做一些原生的改动,把整个课程、题型训练、专项训练转向原生,为什么用Expo,主要原因是希望可以复用部分我们在Nextjs写好的lib,比如说我们泰文的转写引擎等等。

然后整体使用了gluestack-ui 和nativewind,类似shadcn和tailwind,不过感觉AI目前除了js外,其他语言训练都太少,一个页面至少需要对话4-5轮才能完全改进到基本符合要求。不过nativewind也不是百分百兼容tailwind,所以有些地方还是有区别,比如同样的文字大小,可能在手机上就显得比较小了。

然后bridge的代码基本上不用改动,就是稍微把实现换一下就行,整体迁移没碰到太大的阻力。里面踩的一个坑可能就是Expo55版本换了底层的音频实现,导致我之前一个测试版播放没声音。

音频播放

主要的坑在于不能像网页上那样把音频每个单独使用,而是要一个统一的实例去replace进行播放,要不放一段时间后就没声音了,特别是在安卓机器上很明显。另外录音可能也会影响到音频播放,会出现时大时小的声音,所以需要统一音轨等。

泰文显示

这应该是我踩过最大的坑了,国产大部分安卓机都阉割了泰文,随便搞了一个广告体(泰文一般分标准体和广告体,我们看到广告牌上像英文的都是广告体),所以导致安卓机上显示泰文都是广告体,但是对于初学者来说,广告体属于比较难,因为有各种各样的写法,如果不了解标准体很难猜出是哪个字母(当然了解有时也很难猜出),类似你还没学会汉语就给你文言文。

所以我后来想了个办法,就是把字库也打包进去,但是发现字被截断了,一开始我以为是我们组件宽度或者高度不足,后来发现并不是,我专门写了一个页面去测试字体后才发现,字库不兼容,所以测试了几款不同的字库后才找到一款兼容还行的标准体。

然后另外一个比较坑的就是元音的单独显示,这个也跟系统有关,有些机器上需要补充一个空字母才能显示,这个跟底层的字符集有关,比如同样的一个原因,可能a系统认为是2个字母,b系统认为是一个字母。因为国产很多就是基于老版本安卓魔改,所以很多奇怪的问题也见怪不怪了,所以我统一补充了一个空字母,这样都能显示出来。

TestFlight的问题

ios的审核是个迷,我之前的2个版本第二天就能审核过去了,但是后面的版本一直审核不过去了,一直处于等待中,有人说因为没给demo user,还有人说因为描述没写清楚,反正就是一直卡着,我也不理解,唯一的可能性就是他们周末没人值班。

打字训练

随着用户开始摆脱初级,开始有一些输入的需求,所以就把目前的句子拿了出来做了一个打字模块,用户可以直接输入进行训练,这样可以让用户单独加强记忆和单词的熟练度。

新版课程

新版课程里增加了两个比较重要的内容,就是句子和语法,我观察了一下其他几个应用,最大的问题在于他们主要是上来就是从过年各种场景学单词,然后做做句子之类的。

我们一开始只有背单词,到后来开始有课程,然后开始有级别。但是整体还是单词为主,所以这次整体做了课程升级,现在级别里开始会出现一些句子卡片和训练让用户可以学习句子,然后也会出现一些语法的卡片让用户学习语法,目前口语的训练就是简单的一个口语录入和检测。后续可能会结合近目前的课程单元里面,但是目前还没打算做这块,毕竟很多人不太喜欢说话,我基本上口语都是跳过的。

AI 老师

AI老师从只教单词拓展到现在能聊天、根据场景拓展、解答聊天,但是目前这个还是一个实验性的功能,目前并没有做的太复杂,主要还是以来提示词驱动,后续这个模块会根据用户反馈然后做改进。

其他没啥了,最近内测修问题基本上高强度,一天一个版本的发。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 独立开发周记26: 泰语学习APP开始内测了

评论 抢沙发

3 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮