Best method for auto launch of app after login

Although one thing about a LaunchAgent is you can mark to keep alive, so that if the app terminates for whatever reason it auto relaunches.

Is there an equivalent when using SMAappService?

If the service corresponds to a LoginItem bundle, the helper starts immediately and on subsequent logins. If the helper crashes or exits with a non-zero status, the system relaunches it.