美文网首页技术流
iOS上流行解决方案的空白工程大小比较

iOS上流行解决方案的空白工程大小比较

作者: 每天多一点 | 来源:发表于2018-01-12 19:59 被阅读103次

    目的

    本文是为了比较在iOS上比较流行的应用解决方案的原始空工程所占用的体积:

    • Objective-C
    • Swift
    • ReactNative
    • Flutter

    实验环境

    • macOS High Sierra v10.13.2
    • Xcode v9.2
    • Flutter channel alpha 2017-12-12

    实验步骤

    1. 建立工程
    2. 打包(Archive)
    3. 比较App Thinning Size Report.txt

    建立工程

    • OC

    使用[File] -> [New] -> [Project…] 建立选择Tabbed App

    Language选择Objective-C

    • Swift

    Swift工程建立的方法和OC保持一致, 只是Language选择Swift

    • ReactNative

    安装好ReactNative环境后, 终端下执行:

    react-native init <工程名>
    
    • Flutter

    安装好Flutter环境后, 在终端下执行:

    flutter create <工程名>
    

    注意: Flutter可以选择使用Swift还是Objective-C构建, 为了比较,这里用了Objective-C来构建.

    打包步骤

    请参考 https://developer.apple.com/library/content/qa/qa1795/_index.html
    主要是为了生成 App Thinning Size Report.txt

    比较和总结

    • Objective-C: 解压缩后 115KB
    • Swift: 解压缩后 7.2MB
    • ReactNative 解压缩后 3.2MB
    • Flutter 解压缩后可能是 29MB 10.1MB (Flutter Beta Version)

    Swift比较大的原因是Swift的运行时所需要的动态库在应用中. Flutter目前还不稳定, 和Xcode9.0+上的ipatool存在兼容问题, 所以只能通过ipa猜测其大小. Flutter beta版已经修复了之前的兼容问题.

    Q&A

    Flutter还在开发中, 如果在Xcode9.1+上遇到Export问题, 请参考这里:
    https://github.com/flutter/flutter/issues/13070

    相关文章

      网友评论

      • nodzhang:请问下载flutter新版本,release版的空工程有多大呢?
        nodzhang:@每天多一点 现在新版本Flutter打的包变小了,不知道楼主重新测试了没
        每天多一点:数据就是release的ipa包

      本文标题:iOS上流行解决方案的空白工程大小比较

      本文链接:https://www.haomeiwen.com/subject/ghfqoxtx.html