Flutter工程师
1-1.5万元/月该职位于今日新发布
一、技术能力要求
(一)必备技能
1、精通Flutter框架及Dart语言
a.具备3年以上移动开发经验,其中2年以上为Flutter实战经验。能够熟练运用Flutter框架进行应用开发,精通Dart语言的语法、特性,包括异步编程、集合操作、类和继承等,能够编写高效、可维护的Dart代码。
b.Flutter的组件库,如Widgets(包括基础组件如Text、Container等和布局组件如Row、Column等)、MaterialDesign组件库和Cupertino组件库,能够根据设计稿快速搭建应用界面。
c.熟练掌握Flutter的布局原理,包括Box模型、Flex布局等,能够灵活运用布局工具解决复杂的界面布局问题。
2、了解Android/iOS原生开发
a.Android原生开发:基本掌握使用Java/Kotlin语言进行Android应用开发。对于Java语言,要熟悉其语法,如面向对象编程、异常处理、集合框架等特性;对于Kotlin,要了解其语法糖(如数据类、扩展函数等)和与Java的互操作性。
b.iOS原生开发:基本掌握使用Swift/Objective-C语言进行iOS应用开发。对于Swift语言,要熟悉其语法,如类型推断、闭包、扩展等特性;对于Objective-C,要了解其运行时机制、动态特性等。
c.了解Android/iOS的基础框架,如Android的Activity、Fragment、Service、BroadcastReceiver等组件,以及iOS的UIKit框架,包括视图(UIView)、控制器(UIViewController)、布局(AutoLayout)、交互(手势识别等)相关知识。
d.了解Android/iOS的数据存储方式,如Android的SharedPreferences、SQLite数据库、文件存储等,以及iOS的CoreData、UserDefaults等。
3、了解Android/iOS应用生命周期、内存管理、多线程及网络通信机制
a.Android生命周期:深入理解Android应用的生命周期,包括Activity和Fragment的生命周期方法(如onCreate、onStart、onResume等),能够根据应用需求在合适的生命周期阶段进行操作。
b.iOS生命周期:熟悉iOS应用的生命周期,包括从启动到终止的各个阶段(如application:didFinishLaunchingWithOptions:、applicationDidBecomeActive:等),能够根据应用需求在合适的生命周期阶段进行操作。
c.内存管理:熟悉Android的内存管理机制,包括垃圾回收机制(GC)和内存泄漏的检测与预防;熟悉iOS的内存管理机制,包括自动引用计数(ARC)原理,能够避免内存泄漏、循环引用等问题。
d.多线程:了解Android的多线程编程,熟练使用Handler、Thread、AsyncTask等进行后台任务处理;了解iOS的多线程编程,熟练使用GCD(GrandCentralDispatch)和NSOperation等进行并发编程,能够合理安排后台任务,提高应用性能。
e.网络通信:掌握网络通信机制,熟悉HTTP/HTTPS协议,能够使用Android的OkHttp、Retrofit等库和iOS的URLSession等进行网络请求,处理网络数据的发送和接收。了解网络请求的优化策略,如缓存机制、连接复用等。
4、熟悉Android/iOS应用上架流程,有实际上架应用经验
a.Android上架流程:了解GooglePlay和国内各大应用商店(如华为应用市场、小米应用商店等)的应用审核规则,包括应用内容、隐私政策、版权等方面的要求。熟悉应用提交流程,包括应用信息填写、版本号管理、截图上传等步骤。
b.iOS上架流程:了解AppStore的应用审核规则,包括应用内容、隐私政策、版权等方面的要求。熟悉应用提交流程,包括应用信息填写、版本号管理、截图上传等步骤。
c.有成功将应用上架Android/iOS平台的经验,能够处理应用上架过程中可能出现的各种问题,如审核被拒的原因分析和解决等。
5、掌握Flutter与Android/iOS原生模块通信(MethodChannel/PlatformChannel)
a.熟练使用Flutter提供的MethodChannel进行Flutter代码和Android/iOS原生代码之间的通信。能够实现在Flutter端调用Android/iOS原生功能(如调用相机、相册等系统功能)和在Android/iOS原生端调用Flutter功能。
b.理解通信过程中的数据传递方式,能够处理好数据类型转换等问题,确保通信的稳定性和可靠性。
6、具备跨平台开发经验,能独立完成Flutter与原生功能混合开发
a.有跨平台开发的实际经验,能够根据项目需求,灵活选择Flutter和原生开发的结合点。例如,在一些性能敏感的模块(如地图功能)使用原生开发,在界面展示部分使用Flutter开发。
b.能够独立完成Flutter与原生功能混合开发的整体架构设计,包括模块划分、数据交互设计等,确保应用的性能和用户体验。
(二)加分项
1、熟悉Android/iOS底层原理
a.Android底层原理:熟悉Android的Binder机制、AMS(ActivityManagerService)、WMS(WindowManagerService)等底层原理,能够利用这些原理进行性能优化和问题排查。
b.iOS底层原理:熟悉iOS的RunLoop、Runtime、内存优化等底层原理,能够利用RunLoop进行性能优化,利用Runtime进行方法交换等操作。
2、熟悉Flutter状态管理及主流三方库
a.熟练掌握Flutter状态管理的几种主流方式,如Bloc模式、Riverpod、Provider等。了解它们的原理和使用场景,能够在项目中根据需求选择合适的状态管理方案。
b.熟悉Flutter的主流三方库,如网络请求库(dio、http等)、图片缓存库(cached_network_image)、路由管理库(fluro等),能够合理使用这些库来提高开发效率和应用性能。
3、有复杂动画、高性能列表、多端一致性适配经验
a.有实现复杂动画的经验,如多层动画叠加、动画的交互效果等。能够使用Flutter的动画API(如AnimationController、Tween等)构建流畅、自然的动画效果。
b.掌握高性能列表的实现技巧,如使用ListView.builder进行懒加载、优化列表项的构建过程等,能够避免列表滑动卡顿等问题。
c.有在多端(如Android、iOS、Web等)进行一致性适配的经验,了解不同平台的UI规范和性能特点,能够使用Flutter的响应式布局、自适应组件等技术实现多端一致的用户体验。
4、音视频处理能力
a.熟悉音视频处理技术,如使用FFmpeg在移动端的应用。能够进行音视频的编解码、格式转换、剪辑、合并等操作。了解FFmpeg的基本命令和在移动端的集成方式,能够通过原生代码调用FFmpeg实现音视频处理功能,并通过Flutter与原生模块通信实现音视频处理的Flutter应用开发。
5、其他
a.熟悉Flutter的插件开发,能够根据项目需求开发自定义的Flutter插件,扩展Flutter的功能。
b.对Flutter的性能优化有深入研究,包括界面渲染优化、资源加载优化等,能够通过分析工具(如FlutterDevTools)找到性能瓶颈并进行优化。
二、其他要求
1、学历要求
本科及以上学历,计算机相关专业优先。
2、代码规范与版本控制
具备良好的代码规范意识,能够遵循团队的代码规范进行开发,包括命名规范、代码格式化、注释规范等。熟悉Git版本控制,能够熟练使用Git进行代码提交、分支管理、合并冲突解决等操作,保证代码的版本管理有序。
3、问题解决与文档撰写能力
逻辑清晰,能够独立解决问题。在遇到技术难题时,能够通过查阅资料、调试等方式找到解决方案。具备技术文档撰写能力,能够编写清晰、准确的技术文档,如开发文档、API文档等,方便团队成员之间的协作。
4、学习与适应能力
对技术有热情,主动学习新技术。能够适应快速迭代的开发环境,在项目需求变化时能够快速调整自己的工作方向,

湖南球秀体育科技有限公司
点击查看地图