Skip to content
This repository was archived by the owner on Jan 19, 2025. It is now read-only.

Commit e7a00ad

Browse files
committed
Other fixies for caption 🚀
1 parent 6580df1 commit e7a00ad

File tree

2 files changed

+26
-55
lines changed

2 files changed

+26
-55
lines changed

_posts/2018-01-16-ide-refactoring-android-studio-xcode-appcode-webstorm-jetbrains.md

Lines changed: 21 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -18,53 +18,32 @@ authors: [fabrizio_duroni, tommaso_resti, francesco_bonfadelli]
1818

1919
IDE, *Integrated Development Environment*, are the software developer toolboxes. When I started to work at [lastminute.com group](https://lmgroup.lastminute.com/ "lastminute.com group") my knowledge of the Android platform was very limited. But... [lastminute.com group](https://lmgroup.lastminute.com/ "lastminute.com group") is an [agile software development](https://en.wikipedia.org/wiki/Agile_software_development "agile software development") company and one of the technique we use during our development workflow is [pair programming](https://en.wikipedia.org/wiki/Pair_programming "pair programming"): two developers work at the same feature on the same workstation.
2020
As reported on Wikipedia, one of the the main advantages of pair programming is knowledge sharing:
21-
21+
2222
>Knowledge is constantly shared between pair programmers, whether in the industry or in a classroom, many sources suggest that students show higher confidence when programming in pairs, and many learn whether it be from tips on programming language rules to overall design skill. In "promiscuous pairing", each programmer communicates and works with all the other programmers on the team rather than pairing only with one partner, which causes knowledge of the system to spread throughout the whole team. Pair programming allows the programmers to examine their partner's code and provide feedback which is necessary to increase their own ability to develop monitoring mechanisms for their own learning activities.
2323
24-
This is why I started to work with my colleague [Francesco Bonfadelli](https://www.linkedin.com/in/fbonfadelli/
25-
"Francesco Bonfadelli"), a senior Android, iOS and Backend developer. During our pair programming sessions I learned a
26-
lot about developing mobile apps for the Android platform. One of the thing I learned in the first few days is the
27-
difference between the official IDEs: Android Studio and Xcode. After seeing the coding speed that Francesco was
28-
able to achieve during an Android coding session, and how much slower it is to do the same things
29-
in Xcode for iOS, I realized how much more advanced is Android Studio with its set of refactoring features in
30-
comparison with Xcode.
31-
In this post I will briefly analyzed some IDEs commonly used for mobile application development focusing on the
32-
coding speed that is possible to achieve by using them and I will explain to you why, at the
33-
time of this writing, I started to prefer the JetBrains IDEs family (not only for mobile application development
34-
:bowtie:).
35-
24+
This is why I started to work with my colleague [Francesco Bonfadelli](https://www.linkedin.com/in/fbonfadelli/ "Francesco Bonfadelli"), a senior Android, iOS and Backend developer. During our pair programming sessions I learned a lot about developing mobile apps for the Android platform. One of the thing I learned in the first few days is the difference between the official IDEs: Android Studio and Xcode. After seeing the coding speed that Francesco was able to achieve during an Android coding session, and how much slower it is to do the same things in Xcode for iOS, I realized how much more advanced is Android Studio with its set of refactoring features in comparison with Xcode.
25+
In this post I will briefly analyzed some IDEs commonly used for mobile application development focusing on the coding speed that is possible to achieve by using them and I will explain to you why, at the time of this writing, I started to prefer the JetBrains IDEs family (not only for mobile application development :bowtie:).
26+
3627
### Xcode
37-
I always loved Xcode. I started to use it 8 years ago and it's still here with me during my daily job. It opens in a
38-
few seconds and you can start to code very quickly. But.... what happens when your app code start to increase in terms
39-
of complexity and you need to do a simple refactoring operation? Does it help you in some way when it need to create
40-
a new class/property? Does it help you when you need to navigate in your code and you need to jump quickly from one
41-
class to another? Well, to be honest it doesn't help you so much. Even a simple renaming could become a painful
42-
operation, especially if you have a project with mixed Swift/Objective-C parts. Everything must be done manually.
43-
Consider for example this list of mixed code creation/refactoring operations:
44-
45-
* create a new class
46-
* instantiate it and keep it as a local variable
47-
* add a method to the previous class
48-
* add a parameter to the method previously created
49-
* extract the local variable as a property of controller in which I created it
50-
51-
In the following video I will try to do these operations in Xcode. At the time of this writing the available Xcode
52-
version is 9.2.
28+
29+
I always loved Xcode. I started to use it 8 years ago and it's still here with me during my daily job. It opens in a few seconds and you can start to code very quickly. But.... what happens when your app code start to increase in terms of complexity and you need to do a simple refactoring operation? Does it help you in some way when it need to create a new class/property? Does it help you when you need to navigate in your code and you need to jump quickly from one class to another? Well, to be honest it doesn't help you so much. Even a simple renaming could become a painful operation, especially if you have a project with mixed Swift/Objective-C parts. Everything must be done manually. Consider for example this list of mixed code creation/refactoring operations:
30+
31+
* create a new class
32+
* instantiate it and keep it as a local variable
33+
* add a method to the previous class
34+
* add a parameter to the method previously created
35+
* extract the local variable as a property of controller in which I created it
36+
37+
In the following video I will try to do these operations in Xcode. At the time of this writing the available Xcode version is 9.2.
5338

5439
{% include youtube.html videoId="tsuS8UoSS1A" %}
5540

5641
**More than 2 minutes to implement all the stuff in the above list.**
5742
Really slow, isn't it?!?? :fearful:
5843

5944
### Android Studio
60-
Before [lastminute.com group](https://lmgroup.lastminute.com/ "lastminute.com group"), I had used Android Studio just
61-
a few times for some very simple Android apps. Then I started to work with [Francesco](https://www.linkedin.com/in/fbonfadelli/ "Francesco Bonfadelli")
62-
and he introduced me to the power of JetBrains IDEs. This IDE gives you the ability to navigate quickly in you source
63-
code, create and modify classes, and allows you to do a lot of other refactoring operations without leaving the
64-
keyboard! Basically you can write code and forget about your mouse!! :open_mouth:. The list of keyboard shortcuts you
65-
can use in your development flow is endless. You can find the complete list [here](https://developer.android.com/studio/intro/keyboard-shortcuts.html "Android studio keyboard shortcut").
66-
Let's try to do the exact same operations I did before with Xcode, and I also add a rename of the class created at
67-
the end of all the previous operation. At the time of this writing the available Android Studio version is 3.0.1.
45+
46+
Before [lastminute.com group](https://lmgroup.lastminute.com/ "lastminute.com group"), I had used Android Studio just a few times for some very simple Android apps. Then I started to work with [Francesco](https://www.linkedin.com/in/fbonfadelli/ "Francesco Bonfadelli") and he introduced me to the power of JetBrains IDEs. This IDE gives you the ability to navigate quickly in you source code, create and modify classes, and allows you to do a lot of other refactoring operations without leaving the keyboard! Basically you can write code and forget about your mouse!! :open_mouth:. The list of keyboard shortcuts you can use in your development flow is endless. You can find the complete list [here](https://developer.android.com/studio/intro/keyboard-shortcuts.html "Android studio keyboard shortcut"). Let's try to do the exact same operations I did before with Xcode, and I also add a rename of the class created at the end of all the previous operation. At the time of this writing the available Android Studio version is 3.0.1.
6847

6948
{% include youtube.html videoId="Xp3v9VsgFjw" %}
7049

@@ -73,19 +52,12 @@ the end of all the previous operation. At the time of this writing the available
7352
As you can see, Android Studio gives you the ability to write code at the speed of light!!! :flushed:.
7453

7554
### AppCode
76-
As you can image, after working a few hours with Android Studio, I started to wonder if there's an IDE that let me
77-
setup the same write code style and workflow. Here another colleague that I worked with, [Tommaso Resti](https://www.linkedin.com/in/tommaso-resti-0ab5285a/ "Tommaso Resti"),
78-
a senior iOS and Android developer, showed me AppCode for the first time. This is another IDE from JetBrains for iOS
79-
development. It allows you to improve your development speed by allowing you to use some of the refactoring tools
80-
that you can find in Android Studio. However it's not all peace and light in this case. Some of the refactoring tools
81-
are not available for Swift and you will still need Xcode to work on Xib and Storyboard (the JetBrains team
82-
developed a plugin for interface builder, but that has been discontinued).
83-
Anyway, if you start to get used to the Android Studio writing code workflow, you will feel at home with AppCode :relaxed:.
55+
56+
As you can image, after working a few hours with Android Studio, I started to wonder if there's an IDE that let me setup the same write code style and workflow. Here another colleague that I worked with, [Tommaso Resti](https://www.linkedin.com/in/tommaso-resti-0ab5285a/ "Tommaso Resti"), a senior iOS and Android developer, showed me AppCode for the first time. This is another IDE from JetBrains for iOS development. It allows you to improve your development speed by allowing you to use some of the refactoring tools that you can find in Android Studio. However it's not all peace and light in this case. Some of the refactoring tools are not available for Swift and you will still need Xcode to work on Xib and Storyboard (the JetBrains team developed a plugin for interface builder, but that has been discontinued). Anyway, if you start to get used to the Android Studio writing code workflow, you will feel at home with AppCode :relaxed:.
8457

8558
### Final thoughts
86-
Android Studio and AppCode are based on IntelliJ IDEA, the famous Java IDE from JetBrains. But that's half of
87-
the story: JetBrains IDE family is really big.
88-
You can find an IDE for each of your favourite language:
59+
60+
Android Studio and AppCode are based on IntelliJ IDEA, the famous Java IDE from JetBrains. But that's half of the story: JetBrains IDE family is really big. You can find an IDE for each of your favourite language:
8961

9062
* CLion, for C and C++
9163
* PhpStorm
@@ -94,4 +66,4 @@ You can find an IDE for each of your favourite language:
9466
* GoLand for GO
9567
* Rider for C#
9668

97-
So no worries: if you want to start to improve you coding speed probably there's an IDE for your favourite language. Xcode will always have a special place in my heart. I will still continue to use it in my daily job as a mobile developer. But... the coding speed I gained with the JetBrains IDEs could not be ignored :smiling_imp:. This is why I started to prefer them :heart:.
69+
So no worries: if you want to start to improve you coding speed probably there's an IDE for your favourite language. Xcode will always have a special place in my heart. I will still continue to use it in my daily job as a mobile developer. But... the coding speed I gained with the JetBrains IDEs could not be ignored :smiling_imp:. This is why I started to prefer them :heart:.

_posts/2018-01-31-blender-tutorial-1-user-interface.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@ The default layout is composed of individual panels, and inside each one of them
2828
* **timeline and animation editor**, used to create and modify animation
2929
* **viewport**, that contains the 3D window in which our scene is shown and where we can add, remove or modify objects.
3030

31-
{% include blog-lazy-image.html description="blender ui editors" width="1500" height="956" src="/assets/images/posts/blender-ui-1-editors.jpg" %}
31+
{% include blog-lazy-image.html description="Blender editors" width="1500" height="956" src="/assets/images/posts/blender-ui-1-editors.jpg" %}
3232

3333
We can switch a panel from one editor to another by clicking on the icon that shows the current editor selected: a list with all the available editors will be shown and we can choose one of them.
3434

35-
{% include blog-lazy-image.html description="blender ui switch editor" width="268" height="500" src="/assets/images/posts/blender-ui-2-switch-editor.jpg" %}
35+
{% include blog-lazy-image.html description="The switch editor" width="268" height="500" src="/assets/images/posts/blender-ui-2-switch-editor.jpg" %}
3636

3737
On the left side of the viewport we can find a series of tabs that contain some operations, tools and actions we can
3838
apply to the 3D window content. This tabs will change based on the fact that we selected or not an object and also based on which type of object we selected. We can also show the object properties sub-panel by clicking the plus (+) button on the right. That sub-panel gives us some information about the object we selected in the 3D window.
@@ -54,7 +54,7 @@ Finally we have the editing interaction mode selector, that allow us to switch b
5454

5555
The menus on the left of the editing mode selector will change accordingly to the mode selected.
5656

57-
{% include blog-lazy-image.html description="blender ui 3D window" width="1500" height="956" src="/assets/images/posts/blender-ui-3-3Dwindow.jpg" %}
57+
{% include blog-lazy-image.html description="The 3D window editor" width="1500" height="956" src="/assets/images/posts/blender-ui-3-3Dwindow.jpg" %}
5858

5959
To navigate in the 3D space, usually Blender require a 3 button mouse (we will see below how to emulate a 3 buttons mouse). Anyway, as we're on a MacBook pro we can do the following basic operation with the "alternative" default mapping:
6060

@@ -72,12 +72,11 @@ There are also some other basic useful 3D navigation commands:
7272

7373
* **Interface**, so what Blender should show in the interface
7474
* **Editing**, so how we edit objects
75-
* **Input**, how mouse and keyboard are configured
75+
* **Input**, how mouse and keyboard are configured
7676
* **Add-ons**, where you can manage plugins
7777
* **Themes**, to change the color of the interface
7878
* **File**, to configure standard paths
7979
* **System**, for system specific settings
8080

81-
To be noted is the option "Emulate 3 Button mouse" in the input settings. This option let Blender emulates a 3
82-
button mouse using the Alt button. Int this way you can use this setting to use Blender with standard keys for mouse.
81+
To be noted is the option "Emulate 3 Button mouse" in the input settings. This option let Blender emulates a 3 button mouse using the Alt button. Int this way you can use this setting to use Blender with standard keys for mouse.
8382
That's enough first post. See you in the second tutorial about selecting and translating objects.

0 commit comments

Comments
 (0)