2025開年原创新作Flutter3.27+Dart3.6跨平台仿携程/飞猪旅行酒店app预订系统。 ());}class App extends StatelessWidget { const App({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( title: 'Flutter3 Trip', debugShowCheckedModeBanner: false 路由页面 getPages: routePages, // 初始化弹窗key navigatorKey: MyDialog.navigatorKey, ); }}flutter3 +vue3桌面admin后台系统:https://cloud.tencent.com/developer/article/2458392uniapp+vue3仿携程预订客房模板:https://cloud.tencent.com
此次,携程旅行网CTO叶亚明先生作为QCon大会的联席主席,携三位出品人与来自全球的技术人员共同探讨携程技术的创新与应用。 InfoQ的记者就携程旅行APP的设计采访了携程旅行网的产品经理杨思洵。 InfoQ:携程有哪些服务适合在Apple Watch上提供? App上测试,相信用户也很快能在Apple Watch上体验到携程提供的一站式旅行服务。 InfoQ:携程的App for Apple Watch能不能推进携程主要的机票酒店预订业务?其他附加产品也有针对Apple Watch的设计吗?比如用车、景点门票、服务评分这些。 InfoQ:携程的App for Apple Watch团队成立有多久了?有哪些令你印象深刻的设计经验?
在4月23日~25日举行的QCon全球软件开发大会(北京站)上,携程技术中心无线开发总监陈浩然分享了《移动开发网络性能优化实践》,总结了携程在App网络性能优化方面的一些实践经验。 在2014年接手携程无线App的框架和基础研发工作之后,陈浩然面对的首要工作就是App客户端性能优化,尤其是网络服务性能,这是所有App优化工作的重中之重。以下为正文。 首先介绍一下携程App的网络服务架构。 下图是携程App的架构设计(典型的层次化设计): 由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道是基于Hybrid来实现。 下图是网络服务的部署架构图: 携程App所有网络服务,无论是TCP还是HTTP都会先连接到一个Gateway服务器。
原创专栏|祁一鸣 2016年4月加入携程, 任机票研发部技术专家。毕业于美国常春藤名校Dartmouth College本科,曾先后在硅谷的Oracle, Yahoo! 当用户在苹果应用商城下载一款APP的时候,如果这款App实现了Slicing的功能,那么用户下载的app bundle里的静态资源是对用户当前手机版本适配的。 1. iOS App安装包解析 说到一个iOS App的安装包, 首先要了解一下.ipa文件的概念。 App Slicing在携程APP上的实践 说了这么多,似乎只要在App里添加图片的时候使用Asset Catalog就可以自动达到Slicing的功能了。 那本次的分享话题也就结束了。 谢谢大家。 但是, 对于一款像携程这样多子工程多业务线团队联合开发并上线多年的APP来说,大部分的图片都不是通过Asset Catalog的方式来管理的。APP里的已有图片大多是直接存储在普通的资源文件夹里。
带来一款春节期间自研的Flutter3.27+Dart3.6跨平台仿抖音App短视频+直播商城+聊天项目。整合了短视频+直播+聊天三大功能模块。 Flutter3项目入口配置/// 入口文件main.dartlibrary;import 'dart:io';import 'package:flutter/material.dart';import ());}class App extends StatelessWidget { const App({super.key}); @override Widget build(BuildContext context) { return GetMaterialApp( title: 'Flutter3 DYMALL', debugShowCheckedModeBanner: article/2435159tauri2.0+vue3客户端admin后台系统:https://cloud.tencent.com/developer/article/2458392uniapp+vue3仿携程预订客房模板
context) { // 获取AppStore实例 final appStore = AppStore.to; return GetMaterialApp( title: 'Flutter3 /controller/app.dart';/* 引入路由页面 */import '../pages/auth/login.dart';import '.. null : const RouteSettings(name: '/login'); }}flutter3解析markdownimport 'package:flutter/material.dart /2514843vue3.5+deepseek网页版ai流式对话:https://cloud.tencent.com/developer/article/2508594flutter3.27+getx仿抖音 article/2435159 tauri2.0+vue3客户端admin后台系统:https://cloud.tencent.com/developer/article/2458392 uniapp+vue3仿携程预订客房模板
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。 本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师。 需求驱动 2014年,随着业务发展需要和携程无线部门的拆分,各业务产品模块归属到各业务BU,原有携程无线App开发团队被分为基础框架、酒店、机票、火车票等多个开发团队,从此携程App的开发和发布进入了一个全新模式 另一方面,从技术上来说,携程早在2012年就触到Android平台史上最坑天花板(没有之一):65535方法数问题。 开源 经过以上介绍,相信各位对携程Android插件化开发和动态加载方案有了初步了解。实现细节请移步GitHub开源项目DynamicAPK。
作者简介 天超,携程资深软件工程师,关注iOS研发,喜欢用脚本语言解决各种难题。 引言 开发效率的提升,是开发者关注的一个永恒的话题。 携程旅行App iOS工程编译,经历了从全源码编译到工程组件化,细分Bundle,再到细分Bundle基础上的进一步优化四个阶段。 携程旅行App的打包Jenkins采用的是master-slave模式,一个Job下会有多个节点,Job是随机抽取的节点。为了提高增量编译的命中率,必须要让Bundle和节点关联起来。 2.3 Bundle细分 最初携程旅行App的Bundle都是按照业务来拆分的,比如:酒店就一个Hotel Bundle,在当时编译速度已经不慢了。 【推荐阅读】 一波N折的携程酒店Swift-Objc混编实践 携程Android 10适配踩坑指南 暗黑模式在 Trip.com App 的实践 携程酒店安卓地图开发实践
携程技术中心基础业务研发部高级研发经理赵辛贵,在本次活动中分享了《React Native在携程的工程实践》。 携程App于2011年开始开发,随着功能的增多,问题也逐渐凸显。 受到APP包大小限制、H5 Hybird性能瓶颈、开发效率低等多种因素影响,携程于2015年引入React Native。在2017年1月已经开始规模化使用。 随后,携程高级无线开发总监和无线技术委员会主席陈浩然分享了《携程无线网络服务方案》。 2016年初,携程无线APP有两个通道:一是Native,基于TCP设计的一套网络服务通道,连了TCP Gateway;二是Hybrid,用GS写界面,最后是通过传统的HTTP请求到达HTTP Gateway 携程的TCP Gateway分为两个部分:第一部分是在接入层管理TCP连接,主要基于Netty实现,负责App端TCP连接管理;第二部分是在路由层,基于Netty Zuul对服务进行路由、监控、安全、鉴权方面的管理
其中携程作为国内市占率最高的OTA企业,稍有动静便会激起千层浪。比如最近携程回港二次上市的传闻不绝于耳,但携程一直对外表示“不予置评”。 而日前,携程回港的传闻也终于得到证实。 多因素推动携程回港 照目前形势来看,携程回港二次上市已成定局,但从整个市场形势来看,全球旅游业危机仍在,此时并非旅游平台上市的一个好时机,更何况携程如今还处于回血中的状态。 2020年旅游市场降至冰点,身为行业老大哥的携程受到的影响也更为突出。根据携程最新的财报数据来看,2020年携程全年净营收同比下降49%,净亏损更是达32.47亿元,也给携程的复苏带来了危机。 即便携程近年来发展稳健,全年连续3年稳居全球在线旅游业第一,但携程在国外资本市场的市值和股价却一直不高,这也给携程在资本市场的发展带来阻碍。 虽说面临大风险时许多企业都会选择开源节流去保证运营,但携程并未在研发成本上进行缩减。根据财报来看,2020年携程的研发成本仍高达76.67亿元,也保证了携程在各项业务的完善程度。
2020 年携程机票 Android 团队将核心业务的历史 Java 代码迁移至 Kotlin + Coroutines + Jetpack AAC 技术栈获得了不错的成效,详见《携程机票 Android 但我们的场景是在现有且彼此独立的携程 Android 与 iOS App工程中引入 KMM,所以我们需要将 KMM 作为一个独立子工程模块进行集成。 携程的 Android 与 iOS App 工程结构大体相似,底层是公共基础团队负责的公共库及框架,上层是依赖公共框架层的各个业务团队的 bundle。 携程 App 包含公共框架团队提供的众多自研框架、协议,例如:网络服务、ABTest、增量配置读取、埋点上报系统、日期时间系统、用户账户系统等等。 目前携程 App 中采用腾讯微信团队开源的 MMKV(详见参考链接 2)用于本地键值对存储,它使用 C++ 编写核心代码,并分别提供 Java 与 Objective-C 等多种语言的上层 API,携程的公共基础团队基于
"url":"{{products[0].imageUrl}}", }, "extendId": "", "conditions": [], "type":"trip-app.image 1.8、动态更新 动态更新能力是重要的一环,在云端更新了页面布局或者样式之后,App 需要即时拉取到最新的 DSL 模板。以下是流程中的时序图: ? 需要注意几点: 1)App 打包需要把线上目前可用的 DSL 模板打包进 App 中,避免第一次打开 App DSL 模板未下载的时候的空窗口现象; 2)版本升级需要做好数据隔离和清除; 3)DSL 最新版本下发 ,需要做好 backup 与异常校验; 通过动态更新机制,改变了我们发布需要跟随版本的痛点,有问题,修复之后可以直接下发到用户的 App。 左边是可视化编辑页面,右侧为实际在 App 场景的使用效果,可以看出还原度还是很高的。 属性编辑界面: ?
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验。 本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师。 需求驱动 2014年,随着业务发展需要和携程无线部门的拆分,各业务产品模块归属到各业务BU,原有携程无线App开发团队被分为基础框架、酒店、机票、火车票等多个开发团队,从此携程App的开发和发布进入了一个全新模式 另一方面,从技术上来说,携程早在2012年就触到Android平台史上最坑天花板(没有之一):65535方法数问题。 携程无线基础研发团队未来会继续努力,为大家分享更多项目实践经验。
背景 近年来,携程的业务急剧增长如2015年第一季度交通票务预订量同比增长104%,而在携程所有的业务中约70%来自于无线,App累计下载量超过7亿(截至2015年6月),这些都迫切的要求提高App测试的效率以保证 正是基于这样的一个背景,携程开始了无线app的自动化之旅... Mobile Testing Infrastructure 无线测试的基础首先需要搭建基础设施。 由于携程迫切的是在真机的环境上测试,因此选择真机。 • 设备类型的选择 设备类型选择的方式也有多种,可以针对市场热销机型采购,也可以针对易出问题的机型采购,或者采用访问App最多设备采购。 每一种方式都有优缺点,携程采用的是访问携程App最多的设备类型进行采购,这样可以保证大部分用户没有问题,其他机型可以由各个产线各自再进行测试。 • 解决方案 为此,我们专门打造了携程无线持续打包平台,无缝把持续打包跟持续检测对接起来。
system_tray/system_tray.dart';import 'package:window_manager/window_manager.dart';import 'controller/app.dart context) { // 获取AppStore实例 final appStore = AppStore.to; return GetMaterialApp( title: 'FLUTTER3 systemTray.popUpContextMenu() : await windowManager.show(); } });}项目环境变量配置.env# 项目名称APP_NAME = 'Flutter3 /Kimi流式AI聊天小助手flutter3.27+getx仿抖音app短视频商城:https://cloud.tencent.com/developer/article/2493971 Electron32 article/2435159 tauri2.0+vue3客户端admin后台系统:https://cloud.tencent.com/developer/article/2458392 uniapp+vue3仿携程预订客房模板
文/孟永辉 如果用一个词来形容携程近几年的发展和变化的话,我想,最为贴切的一个词,或许就是「蜕变」了。是的,携程正在发生一场全面的改变,最终,让携程早已不再是以往的那个携程。 同几乎所有的互联网玩家们一样,携程主要做的是撮合和中介的买卖,只是携程做的是旅游相关的撮合和中介罢了。纵观携程的发展史,我们可以非常明显地看出,它的身上有相当浓烈的互联网的味道。 可以预见的是,未来的携程,将不再仅仅只是一个简单意义上的OTA平台,而是成为了一个全新的存在。 拥抱实体,携程开始虚实结合 从本质上来讲,携程其实依然是一家互联网平台。 对于携程来讲,什么才是它的「根」呢?笔者认为,旅游业,才是真正孵化携程,并且真正可以让携程继续发展的行业。 结语 疫情给携程带来了不少挑战,同样地,一场蜕变,正在携程身上发生。经历了这样一场蜕变之后,我们所认识的携程,或许将不再是以往的那个携程,而是成为了一个全新的存在。
今年尝到甜头的携程,不仅推出升级版的“旅游复兴2.0”计划,更是全面升级内容生态。并发布了可能让携程“蜕变”的“旅游营销枢纽”战略,剑指“营销力”赋能泛旅游业。那么这一次,携程会跑得更快吗? 按照规划,携程“三步走”已经走到最后一步,算是成功了一大半。那么携程凭什么?笔者认为可用“时势造枢纽”来概括。 首先是“时”,即携程与时俱进的内容品类和形式。 这里的“时”指两方面。 这为携程打造“旅游营销枢纽”积攒了足够的势能,也让携程“三步走”中的后两步顺利完成。 因此,打造“旅游营销枢纽”与其说是携程刻意为之,倒不如说是旅游业时势变幻之下的必然。 不过携程也有自己的烦恼——目前其营收主要来自佣金收入。所以发力内容生态建设、切入旅游营销市场,对携程来说意义重大。 首先,旅游营销收入,能让携程的总营收再上一个台阶。 与内容生态一样,国际化也是携程当下的一个重点,而内容生态将为携程国际化赋能。携程集团首席执行官孙洁就表示,“内容生态”未来将成为携程国际化征程上的新助力。
一、携程App无线网络服务架构 2014年携程为无线服务开发了Mobile Gateway,有两种类型:TCP Gateway和HTTP Gateway。 携程App内置了一组Server IP列表,同时每个IP具备权重。每次建立新连接,会选择权重最高的IP地址进行连接。 因此携程App启动时会优先激活注册一些第三方SDK以及发送HTTP请求来激活移动网络。 采用该技术方案后,携程App中Hybrid业务的网络服务成功率提升至99%以上,平均耗时下降了30%。 ? 五、海外网络服务优化 携程目前没有部署海外IDC,海外用户在使用App时需要访问位于国内的IDC,服务平均耗时明显高于国内用户。
本节代码利用Flutter的ListView组件实现垂直/水平方向滚动的列表,效果图如下: