{"id":5813,"date":"2017-03-16T18:11:28","date_gmt":"2017-03-17T02:11:28","guid":{"rendered":"https:\/\/blog.mhvt.net\/?p=5813"},"modified":"2017-03-17T19:42:38","modified_gmt":"2017-03-18T03:42:38","slug":"whats-coming-up-next-tom-bluewater-introducing-path4swift-for-mac-os-x","status":"publish","type":"post","link":"https:\/\/blog.mhvt.net\/?p=5813","title":{"rendered":"What\u00e2\u20ac\u2122s Coming Up Next? \u00e2\u20ac\u201c Tom Bluewater Introducing Path4Code for Mac OS X"},"content":{"rendered":"<p><a href=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"mac\/mac_shareware\/path4swift\/path4swift_icon.jpg\" width=\"120\" height=\"120\" alt=\"Mac OS X software Path4Code\" \/><\/a><br \/>\n<br \/><\/br><br \/>\n<br \/><\/br><br \/>\nTOKYO (Tom Bluewater) &#8211; For the past three months, I&#8217;ve worked on several <strong>iOS apps<\/strong> for <strong>iPhone<\/strong> and <strong>iPad<\/strong>.  Speaking of specific apps including <strong>Animal Me<\/strong> and <strong>Masked Man Or Woman<\/strong>, I had to create a lot of <strong>UIBezierPath<\/strong> path objects a few weeks ago.  Fortunately, I have a great desktop application (, which I didn&#8217;t develop myself) that lets me draw paths with my trackball.  Unfortunately, it only generates <strong>Objective-C<\/strong> code.  And I&#8217;ve asked the developer by e-mail whether he or she is going to release a Swift-compatible version.  But there&#8217;s been no reply.  I only write <strong>Swift<\/strong> now, so what can I do about Objective-C code that I&#8217;ve got?  Well, as I usually do, I&#8217;ve developed a desktop application to make iOS development more efficient.  And I&#8217;ve ended up with a desktop application called <strong>Path4Code<\/strong>.<\/p>\n<p>Path4Code is a desktop application that lets you quickly convert hundreds of lines of Objective-C code for UIBezierPath into the Swift-compatible.  Basically, all you have to do is to plug your Objective-C code into the top text field.  And retrieve Swift-compatible code at the bottom or click on the copy code toolbar button. &nbsp; <!--more--><br \/>\n<br \/><\/br><br \/>\n<br \/><\/br><\/p>\n<table width=\"464\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tr>\n<td width=\"220\" valign=\"top\"><a href=\"mac\/mac_shareware\/path4swift\/1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"mac\/mac_shareware\/path4swift\/thumbnail_1.jpg\" width=\"220\" height=\"140\" alt=\"Mac App Store application Path4Code\"\/><\/a><\/a><\/p>\n<div align=\"center\">Tom Bluewater<\/div>\n<\/td>\n<td width=\"20\">&nbsp;<\/td>\n<td width=\"220\" valign=\"top\"><a href=\"mac\/mac_shareware\/path4swift\/2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"mac\/mac_shareware\/path4swift\/thumbnail_2.jpg\" width=\"220\" height=\"140\" alt=\"Mac App Store application Path4Code\"\/><\/a><\/a><\/p>\n<div align=\"center\">Tom Bluewater<\/div>\n<\/td>\n<\/tr>\n<\/table>\n<p><\/br><br \/>\n<br \/><\/br><br \/>\n<u>Features<\/u><\/p>\n<ol>\n<li>The application converts lines of Objective-C code for UIBezierPath into the Swift-compatible with three different modes.  Select Absolute to leave point coordinates as they are.  Select Relative to divide each coordinate value with the width or height of an area you define.  Select Multiple when you work with resizable path objects.<\/li>\n<li>Choose to omit or not to omit anything (like UIColor, setFill, setStroke, lineWidth) other than lines of code referring to UIBezierPath per se.<\/li>\n<li>The fullScreen mode is supported.<\/li>\n<li>The application supports the retina screen. (tested with 2014 2.6 GHz 13&#8243; MacBook Pro)<\/li>\n<li>Languages: English only.<\/li>\n<li>Application file size: 27.7 MB.<\/li>\n<li>The application comes with a built-in 11-page user guide.  Choose Show Quick Tour under Path4Code whenever you need to see it.<\/li>\n<\/ol>\n<p><\/br><br \/>\n<br \/><\/br><br \/>\n<u>System requirements<\/u><\/p>\n<ol>\n<li>10.11 (tested with 10.11.6), 10.12 (tested with 10.12.2)<\/li>\n<li>64-bit system<\/li>\n<\/ol>\n<p><\/br><br \/>\n<br \/><\/br><br \/>\n<u>Limitations<\/u><\/p>\n<ol>\n<li>A path must be initialized with UIBezierPath&#8217;s <strong>bezierPath<\/strong>, <strong>bezierPathWithOvalInRect<\/strong>, <strong>bezierPathWithRect<\/strong> or <strong>bezierPathWithRoundedRect<\/strong> methods.<\/li>\n<li>For now, the application does not support the following UIBezierPath methods: <strong>bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:<\/strong>, <strong>bezierPathWithArcCenter:radius:startAngle:endAngle:clockwise:<\/strong>, <strong>bezierPathByReversingPath<\/strong>.  If you have sample code for these methods in Objective-C and Swift, we can probably suppose them, though.<\/li>\n<li>The application will convert Objective-C code into the Swift-compatible.  More precisely, the code you will get is compatible with Swift 3 and not necessarily with Swift 2.2 or 2.3 or any lower than Swift 3.0.<\/li>\n<\/ol>\n<p><\/br><br \/>\n<br \/><\/br><br \/>\n<u>Version history<\/u><\/p>\n<p>None so far&#8230;<br \/>\n<br \/><\/br><br \/>\n<br \/><\/br><br \/>\n<u>Trial\/Demo version<\/u><\/p>\n<p>Click <a href=\"mac\/mac_shareware\/path4swift\/Path4SwiftTrial1001.zip\">here<\/a> to download a trial version.  This trial version will remain fully functional for 7 days, starting from the very moment you first launch it.<br \/>\n<br \/><\/br><br \/>\n<br \/><\/br><br \/>\n<u>Video tutorial<\/u><\/p>\n<p>There is no video tutorial at this time.<br \/>\n<br \/><\/br><br \/>\n<br \/><\/br><br \/>\nPath4Code is a product of Tom Bluewater.<br \/>\nApple and the Apple logo are trademarks of Apple Inc., registered in the U.S. and other countries. Mac App Store is a service mark of Apple Inc.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TOKYO (Tom Bluewater) &#8211; For the past three months, I&#8217;ve worked on several iOS apps for iPhone and iPad. Speaking of specific apps including Animal Me and Masked Man Or Woman, I had to create a lot of UIBezierPath path &hellip; <a href=\"https:\/\/blog.mhvt.net\/?p=5813\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":342,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,507],"tags":[],"class_list":["post-5813","post","type-post","status-publish","format-standard","hentry","category-apple-mac","category-swift"],"_links":{"self":[{"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/posts\/5813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/users\/342"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5813"}],"version-history":[{"count":12,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/posts\/5813\/revisions"}],"predecessor-version":[{"id":5829,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=\/wp\/v2\/posts\/5813\/revisions\/5829"}],"wp:attachment":[{"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mhvt.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}