2017 MacBook Pro is a fairly recent model and supports running the current iOS development tooling (recent version of macOS, current version of Xcode + iOS SDK + iOS Simulator) pretty decently.
However, how smoothly does Xcode run is a subjective question. As mentioned, the MacBook is pretty recent and can handle the iOS development environment fairly well. The actual performance is dependent not on the hardware alone, but also on the optimization level of the software (macOS + Xcode), which are fairly well optiized in general.
While the machine configuration (Memory, CPU, disk space) required for optimal performance is highly dependent on the actual workflow i.e., the kind of project you'll be working on, it's generally a good idea to go with as much RAM as you can budget for as it's not upgradable at a later stage.
- Does current version of Xcode (10.1) and iOS Simulator run smoothly without lag on this Mac? or do I need more RAM and SSD and more powerful CPU?
This is subjective and dependant on the complexity of the project. In general Xcode will run decently on this configuration.
- How fast the 128 GB SSD fills with Xcode project files if I use the machine only for app development purpose?
This is again subjective as it's dependent on the size of project.
- Can I move old Xcode project files to an external disk in order to free up space on internal drive (and copy old Xcode project files back to internal drive as needed)?
Yes. Xcode project is a entirely contained in a single directory. As long as you keep all the project referenced files in the same location (generally inside the project directory), you can freely move around the directory between internal and external drive.
- Can I directly save and run Xcode project files from external disk without using the internal drive?
Yes, you can save/run Xcode project from an external drive. However, the drive needs to remain connected for the duration of work.