While hosting new service these days, what would be best decision. IPv4 or IPv6 ?
Assuming this is a service intended for use over the public internet by clients on machines or networks outside your control you should support both.
How easy/difficult to get IPv4 address (considering they getting exhausted out soon)?
For individual addresses you generally rent them from your hosting provider, most providers still include one with each server, but some are starting to charge extra for it. As the market price of IPv4 addresses rises we can expect the rental fees charged by service providers to rise too.
If you need blocks to run your own network things get harder. There is a market in IP blocks but AIUI it's more like buying real eastate than buying servers.
In Europe it's also possible to register as a LIR and get a "final allocation" from RIPE, the downside of that approach is the ongoing fees (fees for a LIR are much higher than for "provider-independent" allocations).
Update: RIPE's pool for "final allocations" is now exhausted too.
Can it be ported easily to IPv6 in coming future?
IPv6 addresses are bigger than IPv4 ones so anything that stores IPs in a fixed-size field (whether text or binary) is problematic. Similarly IPv6 addresses in text form use colons rather than dots so anything that stores IP addresses in a structured text format is potentially problematic.
It is almost certainly easier to support both from the start than to try and track down every place IP addresses are stored and processed after the fact.
How can existing IPv6 users be able to communicate with it?
Currently a large proportion of the Internet is v4 only, so providers have to provide some means for their clients to access v4 only resources. Increasingly as IPv4 addreses get more expensive and harder to obtain they will be looking for mechanisms that allow them to do this without giving each customer a dedicated public IPv4 address.
There are a variety of approaches to this, including conventional IPv4 NAT at the ISP level, DS-Lite which tunnels IPv4 packets to a special IPv4 NAT over IPv6 and NAT64 which translates IPv6 packets to IPv4 packets. All of them will come at a cost in performance, reliability and ability to trace abuse.
How can existing IPv4 users be able to communicate with it?
Unlike in the previous case this is mostly your problem. Some clients may use teredo but windows disables teredo by default when it detects a domain controller and most other operating systems didn't support it out of the box at all. Even when teredo is enabled it's not exactly the most reliable mechanism.
So if you want your service to work for the majority of Internet users you need to offer it on IPv4.
That doesn't necessarily mean your servers have to support IPv4 though. For example if you front with a CDN like Cloudflare or Akamai then the CDN can receive the traffic over IPv4 and forward it to you over IPv6. I am also aware of one hosting provider that offers a free reverse proxy service for this customers. I expect such things to become more common as the price of IPv4 addresses and the proportion of clients supporting IPv6 both rise.