伊莱尔:基于 Expo 和 Supabase 构建透明的租赁市场平台

发布日期:2026-04-09 10:02:56   浏览量 :3
发布日期:2026-04-09 10:02:56  
3

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

伊莱尔(Ilere)是一个面向尼日利亚城市的移动住房交易平台,覆盖伊巴丹、拉各斯、阿布贾和哈科特港等城市。其核心理念在代码中清晰可见:租户浏览房源时可看到明确的费用明细,打开一个房源后会收到多位中介的竞争性报价,从中选择最优方案,并在应用内继续沟通。真正的痛点不仅在于房源发现,更在于让租赁市场中不透明的部分——尤其是中介定价与协调机制——变得足够透明,以便进行比较。

当前的代码库还超越了这一基本流程。租户可以收藏房源、直接联系房东发布的房源、接收应用内通知和推送通知,并可举报或屏蔽滥用用户。中介和房东则可以发布房源。最终形成了一款具有明确产品主张的移动端应用,其真实的工作流边界已深度融入前端与数据库之中。

该架构以一种良好的方式保持简洁。src/app/_layout.tsx 是应用的实际外壳:它加载字体,持有一个共享的 QueryClient,通过 authService.getCurrentUser() 恢复认证状态,订阅认证状态变化,注册通知处理器,并挂载提示消息宿主。导航采用基于文件的方式,由 Expo Router 在 src/app 目录下管理,因此路由结构与产品结构基本一致。路由分组具有明确意义:(auth) 用于新用户引导和登录,(tabs) 用于主应用外壳,而像 house/[id].tsxrequest/[id]/bids.tsxchat/[id].tsx 这样的详情路由则用于处理更深层的交互流程。

状态管理被有意拆分。全局客户端状态几乎不存在。src/features/auth/store.ts 仅使用 Zustand 存储用户对象及两个标志位:isLoading(是否正在加载)和 isResettingPassword(是否正在重置密码)。其余所有内容均被视为服务器状态,并由 React Query 管理。这对本应用而言是正确的选择。房源、请求、报价、聊天、消息、通知以及收藏的房源均源自 Supabase,并且由于实时订阅机制,这些数据经常在客户端不知情的情况下发生变化,若将其保存在客户端存储中将导致不必要的重复。

API 层遵循清晰的模式:界面组件调用功能钩子(feature hooks),钩子调用 src/services/supabase/* 中的服务模块,而服务模块则负责具体的 Supabase 查询。src/services/supabase/client.ts 负责初始化类型化的 Supabase 客户端,并将认证信息持久化到 AsyncStorage 中:

导出 常量 supabase = createClient<Database>(supabaseUrl, supabaseAnonKey, {
  auth: {
    storage: AsyncStorage,
    autoRefreshToken: true,
    persistSession: true,
    detectSessionInUrl: false,
  },
});

这种分离带来了显著收益,因为大多数有趣的行为并非简单的数据获取。服务层大量使用关联查询。housesService.getHouses() 方法会联结 house_photo

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部