Summary
Writing non-portable code has its strengths and weaknesses, just like any other global architectural decision. This particular choice, however, is especially hard because the switch to native API typically happens early in the project and may be completely impractical to undo at a later stage.
The major advantage of the approach was discussed at the beginning of this chapter: with platform-specific code, you can do virtually anything that your platform is capable of. There are no artificial limits; your Python code has unrestricted access to the same underlying API as the native code.
On the downside, depending on a single platform is risky for a number of reasons:
- The market of Android alone is provably smaller than that of Android plus iOS (this holds true for about every combination of operating systems).
- Porting the program over to a new system becomes harder with every platform-specific feature you use.
- If the project runs on just one platform, exactly one political decision may...