官术网_书友最值得收藏!

  • Lean Mobile App Development
  • Mike van Drongelen Adam Dennis Richard Garabedian Alberto Gonzalez Aravind Krishnaswamy
  • 361字
  • 2021-07-02 22:58:58

Inability to dynamically load libraries

Native app development tool chains only permit static linking of libraries. What this means is that there is no straightforward way to dynamically load library components into your app, the way that a web developer may choose to pull different JavaScript modules over the web on the fly.

In the case of iOS, there are a few tricks through which libraries can be loaded. The default iOS Xcode settings don't permit you to create a dynamic library, but that can be worked around by copying over the MacOS settings. However, while this can be tested out locally, roadblocks appear during code signing, and the kernel kills app libraries that are not signed by Apple with the same certificate. That said, since the app review process bars dynamic loading, it's unlikely to make it through their checklist.

Workarounds such as this-or others that can be found online-can be tried and tested to see if they will make it through the submission process. However, in the event that they don't succeed, it may pay to develop a static-loading strategy for your app:

In case of Android, there are similar tricks through which a Dex file may be loaded, extracted, and invoked. This is because the Dalvik VM permits some levels of custom class loading from alternate locations such as local storage or a remote network. However, this is not suitable for all apps and has a fair bit of complexity when it comes to properly dealing with all scenarios.

Whereas a web developer can easily flip a switch and change the components rendering on his dashboard, the app developer needs to perform a juggling act. If he would rather focus on the core problem of his app, he would need to push a new app build to the marketplaces and then wait for users to download the new version.

In real-world terms, this could translate into anything from weeks to months before an experiment starts to hit the target user base. Though such delays could be very problematic, in the later chapters we will discuss workflows and techniques that can help you workaround technical roadblocks such as these.

主站蜘蛛池模板: 濮阳县| 闽侯县| 乌兰察布市| 泸西县| 开江县| 乡宁县| 乌兰察布市| 莎车县| 同心县| 通江县| 邵武市| 庄浪县| 新昌县| 定日县| 阳高县| 茌平县| 吉安市| 蒲城县| 新河县| 达州市| 屏山县| 贡嘎县| 霸州市| 邯郸县| 永吉县| 万年县| 红河县| 自治县| 福泉市| 南华县| 商水县| 泊头市| 林西县| 天津市| 寻甸| 共和县| 洛川县| 百色市| 开鲁县| 重庆市| 瓦房店市|