I would like to give you some suggestions.
it will be the same APK , or its better to Create another APK ?
It should be a single app.
if it will be same APK , how can i force the app to stick on Vertical
for Smartphones and stick on Horizontal for Tablets? ( Meaning if app
is running on tablets it will never rotate to vertical and vice versa
for smartphones )
For layout issues concider this. which should give you some basic idea about how to acheive it.
how can i define layouts for horizontal ?!
For horizontal layouts you can define a seperate layout. You check for the screen size or whatever stuffs which proves for horizontal layout and set the layout.
if anyone got special experience on doing this please share it with me
I have followed it by using the screen sizes and I have used the layout depending on the size. Have a look at this explains somethings to you.
Edit :
Same applies for the vertical layout as well. That is have a vertical layout defined.
For Horizontal use dp
. Know about it with above first link. There you can have it like below.
Density-independent pixel (dp)
A virtual pixel unit that you should
use when defining UI layout, to express layout dimensions or position
in a density-independent way. The density-independent pixel is
equivalent to one physical pixel on a 160 dpi screen, which is the
baseline density assumed by the system for a "medium" density screen.
At runtime, the system transparently handles any scaling of the dp
units, as necessary, based on the actual density of the screen in use.
The conversion of dp units to screen pixels is simple: px = dp * (dpi
/ 160). For example, on a 240 dpi screen, 1 dp equals 1.5 physical
pixels. You should always use dp units when defining your
application's UI, to ensure proper display of your UI on screens with
different densities.