 Detect your violation automatically. But first of all, I have a question. How many of you are doing team development now? 10? OK, that's enough. Another question is, do you guys have rules and conventions where you guys are doing development? Any? One? OK, two? Three, maybe? OK, let me talk our story. So like early this year, I was the only iOS engineer in our team. But I also needed to do server side, because we have only two engineers in our team. And yeah, but basically now we use Swift 1.2 for new classes. But for existing class, we still use Objective C. And it's not so easy to find good engineers in Singapore. Anywhere. So we are planning to work with a few engineers from Silicon State. They are based in Block 71. So they have team in Saigon. So we are planning to work with them. So I would say like 60%, I use my 60% for server side. And 40%, maybe it's kind of like a PM role. So I was planning so. But our concerns are like we haven't met the engineers yet. And also we haven't communicated well. And we don't know how they called. And more than anything else, we haven't used outsourcing before. So it's like sounds dangerous, right? But what we wanted is the output should be like a readable code and also extendable. And also like a standardized code. And I also wanted to minimize my PM time so that I can focus on server side. But Swift is flexible. So meaning you can describe what you want in various ways using Swift. So I thought in this case, if no rules, the output is going to be chaos. So I was thinking how can we solve this issue in advance before starting working with them? So I thought maybe having a style and convention guide is going to be solution. So I just decided to make it and push it on GitHub, which is public now. Let me. So something like this, actually it's not completed yet. I'm still improving. This is old one. So basically it describes a good part and bad part. So something like this. And back to. And I pushed it to GitHub. And I asked them, please follow these rules and conventions. And I thought it's OK, everything is going to well. But when it turned out, we are lazy. So I realized, firstly, we are trying to follow our rules and convention. And for my side, I tried to fix small issues. But finally, we stopped. And I also stopped following our rules and conventions. So we are lazy. So we realized human being are lazy. So we need some automation instead of having a manual way. So I was finding on internet, or is there any good tools I can use to make automation system. And I found one good open source library. I think some of you guys might know it. Swiftlink, have you guys heard of this library before? OK, maybe. So I found this library on GitHub. Basically, this Swiftlink enforces Swift style and conventions, which hooks Soskit to use abstract syntax tree over your code. And I'm going to show you a demo now. And when I found this library, there are some lacking. There are some rules I wanted. So now I'm slowly contributing to this open source library now. So let me show you a demo. It's like a section. So there are repository is on GitHub now. So what you have to do in order to use Swiftlink is quite simple. You just make new run script and put this path. And that's it. And when you type, now there are some rules. Let me Swiftlink. Now there are 1, 2, 3, 4. Now there are more than 10 rules now. On this project. So let's say I make a space here. And I compile. You get error message here. Can you see this rule? Sorry? Maybe the presentation. And presentation, which button? Should I put presentation function? Over there? No? So can you see? So you get warning. Can you guys see this error message? So it says you should have no trading white space. Because Swiftlink has this rule. And also, if I don't put space here and compile it, you also get error message. You should put one space here. And it's also colon rules. And also here, if you have one line, it's like one line has more than 150 or 40 words. You get warning. It shouldn't be more than 100. That's a complete code. And yeah, this is just example. So there are some many. Now there are more than 10 rules here. So something like about colon, about control statement, or file lengths, and also like a forced cast rule, and leading white space, trading white space. So if I put space here, compile it, you get error message, and also to-do rule, nesting rule. Yes. Now I just show white space rule. But I think it's quite useful in order to check whether your code has violation or not. So lastly, we are still improving our coding guide, guide and convention. And of course, I would say automation is better than manual. It's always yes. If you like, please give us, give me your feedback. Thank you. From GitHub. Yes, I think, yeah, I have. Actually, this is on your own. And you're just one developer contributing for it, right? Yeah. Very well-developed team. They are, like, very well-developed. We created this trip guideline. We're actually following this within beta of all our slipped guidelines. And I think we have a more accurate little trick, because the end of this guideline is based for brain books. So there are certain tabs, like two tabs, or what tabs. This would be good for GitHub, right? It's slightly better than this. Yeah, OK. Yeah. So there are lots of things that you can call and look into. It's really about it. And then space. They don't speak in one space. It's just kind of boring. But GitHub has a very good guide line. Oh, yeah. It's actually. The problem with Swift is, Apple doesn't publish anything. And they only program it. Yeah. Yeah. This, yeah. This Swift range basically follows, like, a GitHub rule. Yeah. But now I'm also adding our rule to this project. Yeah. It's not an export plugin, but you can install it on your Mac. Oh, I mean, to make new rule? Yeah. A rule should not just show a warning. It should at least offer me a suggestion. Click. And then, oh, OK. We will be failing space. It's now. Very hard. Isn't it easy? Yeah. Now it's not easy to customize it. Basically, you have to follow all use they made. So, but I think next version will be customizable. You can switch to me. So, how do you integrate? How do I integrate? Oh, it's a. So, you make, like, you make a binary file. You can make a binary file from this project. Have you tried creating an export plugin? It's like a plan format. Something like plan format. Something like plan format. Yes. Something like that. So, if you export it, instead of export, which means you would probably have a way to edit the currently open files. Yeah. No, I haven't. Like, there are export that is an automatic format. In the same code. So, any questions? Would you like to see? Actually, no. It doesn't support. I would like to see. Supports on me is swift. For this project. So, do you stop everything? No. But I would like to see a generation. There's the only thing. You know the real reason. There's the only reason behind that, right? You must see it as an image, right? It was a proxy work inside Apple, JQC developers, Fin that they were isolated, and they might be thrown away from Apple. This and to print that. Whatever. It should be the part of this project. So, there will be genres. I would love to see it. I mean, it's not about the elements. It's more like, they are compiler designers. They will be genres that no one uses. I'm sorry.