# Best way to convert a vision mobile app to perspective

**URL:** <https://forum.inductiveautomation.com/t/best-way-to-convert-a-vision-mobile-app-to-perspective/78683>\
**Category:** Ignition\
**Tags:** vision, perspective\
**Created:** [September 1, 2023, 5:39pm UTC](https://forum.inductiveautomation.com/t/best-way-to-convert-a-vision-mobile-app-to-perspective/78683 "2023-09-01T17:39:40Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [September 1, 2023, 10:26pm UTC](https://forum.inductiveautomation.com/t/best-way-to-convert-a-vision-mobile-app-to-perspective/78683/4 "2023-09-01T22:26:51Z")

</div>

A few links (there are other links posted in these which are also very applicable):

> [@How to learn perspective the right way?](https://forum.inductiveautomation.com/t/how-to-learn-perspective-the-right-way/64362):
>
> Hi I am learning perspective trying to be “project ready” (which might arrive soon). I covered perspective section of the inductive university and also elective study (Building in perspective which was excellent). Just wonder what would be the best idea to do next: 1 I have demo VM which i might start analysing - is there any additional documentation related to the demo VM? or is the project self explanatory 2 i consider reviewing all perspective library objects to have good gist what each…

> [@Building for Performance](https://forum.inductiveautomation.com/t/building-for-performance/71082/3):
>
> In this example, #3 is the most performant, though it could be argued that the performance gain in this instance would be negligible. Anytime you add an additional processing step you add latency. In general for the best performance I follow these guidelines: If you can achieve what you want with a binding, use a binding. Always use the binding type that is the most direct. (e.g. if all you need is a binding to a property use a property binding, not an expression binding.) Given the choice b…

IMHO, the biggest hurdles to wrapping your head around perspective (in no particular order) are:

1. Layout management (e.g. when to use which kind of container)
2. Styles are really, really powerful use them!
3. Embedded views are great but use them sparingly.
4. _ **EVERYTHING** _ executes in the gateway. _ **EVERY-THING!!** _ So if it doesn't say available in gateway or perspective scope, don't even try it.
5. The script console will pretend to be your friend. The script console executes in designer scope which is a variant of Vision Client scope, see No. 4 for why this is important.
6. Message Handlers are your real friends. You should have at least one that is set up to function for testing. This will allow you to use your old friend the script console to test your scripts in Gateway scope, again see No. 4 for why that is important.
7. Transforms are cool, but they're also slow\* so if you can do something without them you really should.
8. Expression Structures are a amazing, don't avoid them you'll be surprised how often they're the answer you were looking for.
9. Test in the designer _and_ a browser. If it doesn't work in the designer then there is a good chance it doesn't work in a browser, if it works in the designer, it might not work as expected in the browser (especially if you're not using some chromium based browser).
10. Browser security will block your efforts. Think about everything from that point of view, things you could do rather simply in vision (communicate over a clients com port, manipulate files on the clients hard drive, etc...) are unavailable, and there isn't a whole lot that IA can do about it.

You should know the syntax for:

- CSS
- JSON
- Jython (Note: not the same as Python)

Good Luck! The paradigm shift is real.

\* Transforms are slow relative to pure bindings. Different types of transforms have different performance factors, you should be aware of that if speed is a concern.

---

_[View the full topic](https://forum.inductiveautomation.com/t/best-way-to-convert-a-vision-mobile-app-to-perspective/78683)._
