Introducing ProtoPie
Auto Layout
Triggers & Responses
Interaction Libraries
ProtoPie Player
Connecting Devices
Voice Prototyping
ProtoPie Enterprise
메뉴
Introducing ProtoPie
Auto Layout
Triggers & Responses
Interaction Libraries
ProtoPie Player
Connecting Devices
Voice Prototyping
ProtoPie Enterprise
함수
함수는 특정 작업을 수행하는 기성 도구와 같습니다. 데이터를 입력받아 처리하고 그 결과를 반환합니다.
함수가 수행할 수 있는 작업의 몇 가지 예는 다음과 같습니다.
텍스트의 문자 수 세기
텍스트에서 특정 단어 찾기
두 숫자 중 더 작은 수 고르기
ProtoPie의 함수는 특정한 구조를 가지고 있습니다.
function(argument: TYPE)→ result: TYPEfunction(argument1: TYPE, argument2: TYPE)→ result: TYPEfunction(argument1: TYPE, argument2: TYPE, argument3: TYPE)→ result: TYPE
함수는 일반적으로 입력을 위해 하나 이상의 인수(데이터)를 사용합니다. 즉, 함수가 작업을 수행하기 위해 사용하는 값입니다. 결과값 뿐만 아니라 인수는 언제나 특정한 타입의 값이어야 합니다. 타입은 텍스트, 숫자, 또는 색상이 될 수 있습니다.
선택할 수 있는 다양한 카테고리가 있습니다.
Text
concat(source1: TEXT, source2: TEXT)
➔
TEXT
Combine two separate texts into one.
•
Example: concat("hello", "world")
➔
"helloworld"
indexOf(source: TEXT, searchValue: TEXT)
➔
NUMBER
Find the starting position of a keyword in a text. If the keyword isn't present in the text, the returned value is -1.
•
Example: indexOf("hello world", "world")
➔
6
•
Example: indexOf("hello world", "hello")
➔
0
•
Example: indexOf("hello world", "goodbye")
➔
-1
•
Use indexOf for use cases like email validation. See use case example.
length(source: TEXT)
➔
NUMBER
Count the number of characters in a text.
•
Example: length("hello")
➔
5
•
Example: length("helloworld")
➔
10
•
Example: length("hello world")
➔
11
•
Use length for use cases like password validation. See use case example.
lowerCase(source: TEXT)
➔
TEXT
Convert any text from uppercase to lowercase
•
Example: lowerCase("Hello")
➔
"hello"
upperCase(source: TEXT)
➔
TEXT
Convert any text from lowercase to UPPERCASE.
•
Example: upperCase("Hello")
➔
"HELLO"
left(source: TEXT, count: NUMBER)
➔
TEXT
Extract a part of a text from the left side based on a specific number of characters.
•
Example: left("hello", 3)
➔
"hel"
right(source: TEXT, count: NUMBER)
➔
TEXT
Extract a part of a text from the left side based on a specific number of characters.
•
Example: right("hello", 2)
➔
"lo"
lpad(source: TEXT, length: NUMBER, pad: TEXT)
➔
TEXT
Left-pad a text with another text, to a specific length.
•
Example: lpad("5", 2, "0")
➔
"05"
•
Example: lpad("5", 4, "0")
➔
"0005"
rpad(source: TEXT, length: NUMBER, pad: TEXT)
➔
TEXT
Right-pad a text with another text, to a specific length.
•
Example: rpad("5", 2, "1")
➔
"51"
•
Example: rpad("5", 6, "1")
➔
"511111"
repeat(source: TEXT, count: NUMBER)
➔
TEXT
Repeat a text a specific number of times.
•
Example: repeat("hello", 2)
➔
"hellohello"
•
Example: repeat("hello", 3)
➔
"hellohellohello"
replace(source: TEXT, from: TEXT, to: TEXT)
➔
TEXT
Replace a part of a text with another text.
•
Example: replace("helloworld", "world", "protopie")
➔
"helloprotopie"
•
Example: replace("goodbye, John", "goodbye", "thank you")
➔
"thank you, John"
trim(source: TEXT)
➔
TEXT
Remove whitespaces on both sides of a text.
•
Example: trim(" helloworld")
➔
"helloworld"
•
Example: trim(" helloworld ")
➔
"helloworld"
ltrim(source: TEXT)
➔
TEXT
Remove whitespace from the left side of a text.
•
Example: ltrim(" helloworld ")
➔
"helloworld "
rtrim(source: TEXT)
➔
TEXT
Remove whitespace from the right side of a text.
•
Example: ltrim(" helloworld ")
➔
" helloworld"
regexextract(source: TEXT, regular expression: TEXT)
➔
TEXT
Extracts the first substrings of a text that match the provided regular expression.
•
Example: regexextract("Google Doc 101", "[0-9]+")
➔
"101"
•
Example:
regexextract("The price today is $826.25", "[0-9]*\.[0-9]+[0-9]+")
➔
"826.25"
regexreplace(source: TEXT, regular expression: TEXT, replacement: TEXT)
➔
TEXT
Replaces part of a text string with a different text string using regular expressions.
•
Example: regexreplace("Google Doc 101", "[0-9]+", "777")
➔
"Google Doc 777"
•
Example:
regexreplace("The price today is $826.25", "[0-9]*\.[0-9]+[0-9]+", "315.75")
➔
"The price is $315.75"
parseJson(source: TEXT, key: TEXT)
➔
TEXT
Parses a valid JSON string and returns the corresponding value.
•
Example:
parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "age")
➔
"30"
•
Example:
parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "name")
➔
"John"
concat(source1: TEXT, source2: TEXT)
➔
TEXT
Combine two separate texts into one.
•
Example:
concat("hello", "world")
➔
"helloworld"
indexOf(source: TEXT, searchValue: TEXT)
➔
NUMBER
Find the starting position of a keyword in a text. If the keyword isn't present in the text, the returned value is -1.
•
Example:
indexOf("hello world", "world")
➔
6
•
Example:
indexOf("hello world", "hello")
➔
0
•
Example:
indexOf("hello world", "goodbye")
➔
-1
•
Use indexOf for use cases like email validation. See use case example.
length(source: TEXT)
➔
NUMBER
Count the number of characters in a text.
•
Example: length("hello")
➔
5
•
Example: length("helloworld")
➔
10
•
Example: length("hello world")
➔
11
•
Use length for use cases like password validation. See use case example.
lowerCase(source: TEXT)
➔
TEXT
Convert any text from uppercase to lowercase
•
Example: lowerCase("Hello")
➔
"hello"
upperCase(source: TEXT)
➔
TEXT
Convert any text from lowercase to UPPERCASE.
•
Example: upperCase("Hello")
➔
"HELLO"
left(source: TEXT, count: NUMBER)
➔
TEXT
Extract a part of a text from the left side based on a specific number of characters.
•
Example: left("hello", 3)
➔
"hel"
right(source: TEXT, count: NUMBER)
➔
TEXT
Extract a part of a text from the left side based on a specific number of characters.
•
Example: right("hello", 2)
➔
"lo"
lpad(source: TEXT, length: NUMBER, pad: TEXT)
➔
TEXT
Left-pad a text with another text, to a specific length.
•
Example: lpad("5", 2, "0")
➔
"05"
•
Example: lpad("5", 4, "0")
➔
"0005"
rpad(source: TEXT, length: NUMBER, pad: TEXT)
➔
TEXT
Right-pad a text with another text, to a specific length.
•
Example: rpad("5", 2, "1")
➔
"51"
•
Example: rpad("5", 6, "1")
➔
"511111"
repeat(source: TEXT, count: NUMBER)
➔
TEXT
Repeat a text a specific number of times.
•
Example: repeat("hello", 2)
➔
"hellohello"
•
Example: repeat("hello", 3)
➔
"hellohellohello"
replace(source: TEXT, from: TEXT, to: TEXT)
➔
TEXT
Replace a part of a text with another text.
•
Example: replace("helloworld", "world", "protopie")
➔
"helloprotopie"
•
Example:
replace("goodbye, John", "goodbye", "thank you")
➔
"thank you, John"
trim(source: TEXT)
➔
TEXT
Remove whitespaces on both sides of a text.
•
Example:
trim(" helloworld")
➔
"helloworld"
•
Example:
trim(" helloworld ")
➔
"helloworld"
ltrim(source: TEXT)
➔
TEXT
Remove whitespace from the left side of a text.
•
Example:
ltrim(" helloworld ")
➔
"helloworld "
rtrim(source: TEXT)
➔
TEXT
Remove whitespace from the right side of a text.
•
Example:
ltrim(" helloworld ")
➔
" helloworld"
regexextract(source: TEXT, regular expression: TEXT)
➔
TEXT
Extracts the first substrings of a text that match the provided regular expression.
•
Example: regexextract("Google Doc 101", "[0-9]+")
➔
"101"
•
Example:
regexextract("The price today is $826.25", "[0-9]*\.[0-9]+[0-9]+")
➔
"826.25"
regexreplace(source: TEXT, regular expression: TEXT, replacement: TEXT)
➔
TEXT
Replaces part of a text string with a different text string using regular expressions.
•
Example: regexreplace("Google Doc 101", "[0-9]+", "777")
➔
"Google Doc 777"
•
Example:
regexreplace("The price today is $826.25", "[0-9]*\.[0-9]+[0-9]+", "315.75")
➔
"The price is $315.75"
parseJson(source: TEXT, key: TEXT)
➔
TEXT
Parses a valid JSON string and returns the corresponding value.
•
Example:
parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "age")
➔
"30"
•
Example:
parseJson("{\"name\":\"John\", \"age\":30, \"car\":null}", "name")
➔
"John"
예를 들어, parseJson(var, "key")을 살펴보겠습니다. 여기서 var는 JSON 문자열을 저장하는 텍스트 변수이고, "key"는 파싱할 키입니다. 후자는 . (점) 표기법을 통해 중첩된 키 호출과 배열 형태의 객체에 대한 간편한 참조를 지원합니다.
parseJson 함수는 ProtoPie에서 복잡한 데이터 구조로 작업하는 것을 크게 간소화합니다. 또한 대부분의 API 응답이 JSON 형식이므로, Pie 내에서 parseJson을 사용할 수 있게 되면 API와의 골치 아픈 연동 작업이 매우 간단해집니다.
다음 작업을 설계하기 위해 parseJson 함수를 사용할 수 있습니다.
ProtoPie Connect의 Bridge 앱을 통해 Pie에 JSON 문자열을 연동합니다 (예: message: “AutomobileSignal”, value: “json string”).
Receive trigger를 거쳐 Pie 내부의 변수에 값을 저장합니다.
JSON 문자열에서 데이터 값들을 직접 꺼내어 활용합니다.
자세한 내용을 알아보려면 이 Pie 예제를 살펴보세요.
Math
pow(source: NUMBER, exponent: NUMBER)
➔
NUMBER
Calculate the result of the first number raised to the power of the second number.
•
Example: pow(2,3)
➔
8
sqrt(source: NUMBER)
➔
NUMBER
Calculate the square root of a number. This doesn't work for negative numbers.
•
Example: sqrt(9)
➔
3
•
Example: sqrt(2)
➔
1.41
min(source1: NUMBER, source2: NUMBER)
➔
NUMBER
Extract the smallest of two numbers.
•
Example: min(0, 1)
➔
0
max(source1: NUMBER, source2: NUMBER)
➔
NUMBER
Extract the largest of two numbers.
•
Example: max(0, 1)
➔
1
abs(value: NUMBER)
➔
NUMBER
Return the absolute value of a number. In practice, this comes down to removing the negative sign in front of a number.
•
Example: abs(-1)
➔
1
•
Example: abs(5 - 25)
➔
20
sign(value: NUMBER)
➔
NUMBER
Check if a number is positive or negative. Return 1 if a number is positive. Return -1 if a number is negative. Return 0 if a number is 0.
•
Example: sign(5)
➔
1
•
Example: sign(-10)
➔
-1
•
Example: sign(0)
➔
0
round(source: NUMBER)
➔
NUMBER
Return the rounded value of a number.
•
Example: round(3.49)
➔
3
•
Example: round(1.5)
➔
2
•
Example: round(6.79)
➔
7
floor(source: NUMBER)
➔
NUMBER
Return the nearest whole number down.
•
Example: floor(1.5)
➔
1
•
Example: floor(2.99)
➔
2
ceil(source: NUMBER)
➔
NUMBER
Return the nearest whole number up.
•
Example: ceil(1.5)
➔
2
•
Example: ceil(4.3)
➔
5
random()
➔
NUMBER
a random decimal number between 0 and 1.
•
Example: random()
➔
a random decimal number between 0 and 1
random(min: NUMBER, max: NUMBER)
➔
NUMBER
Return a decimal number randomly between two given numbers.
•
Example: random(1, 5)
➔
a random decimal number between 1 and 5
randomInt(min: NUMBER, max: NUMBER)
➔
NUMBER
Return a whole number randomly between two given numbers.
•
Example: randomInt(1, 5)
➔
a random whole number between 1 and 5
radians(degrees: NUMBER)
➔
NUMBER
Convert degrees to radians.
•
Example: radians(180)
➔
3.14 = π
•
Example: radians(90)
➔
1.57 = π / 2
degrees(radians: NUMBER)
➔
NUMBER
Convert radians to degrees.
•
Example: degrees($pi)
➔
180
•
Example: degrees($pi / 2)
➔
90
sin(radians: NUMBER)
➔
NUMBER
Calculate the sine of a number in radians.
•
Example: sin($pi / 2)
➔
1
•
Example: sin($pi / 6)
➔
0.5
cos(radians: NUMBER)
➔
NUMBER
Calculate the cosine of a number in radians.
•
Example: cos(0)
➔
1
•
Example: cos($pi / 2)
➔
0
tan(radians: NUMBER)
➔
NUMBER
Calculate the tangent of a number in radians.
•
Example: tan($pi / 4)
➔
1
•
Example: tan(0)
➔
0
asin(x: NUMBER)
➔
NUMBER
Calculate the arcsine (in radians) of x.
•
Example: asin(1)
➔
1.57 = π / 2
•
Example: asin(0.5)
➔
0.52 = π / 6
acos(x: NUMBER)
➔
NUMBER
Calculate the arccosine (in radians) of x.
•
Example: acos(1)
➔
0
•
Example: acos(0)
➔
1.57 = π / 2
atan(x: NUMBER)
➔
NUMBER
Calculate the arctangent (in radians) of x.
•
Example: atan(1)
➔
0.79 = π / 4
•
Example: atan(0)
➔
0
atan2(y: NUMBER, x: NUMBER)
➔
NUMBER
Calculate the arctangent (in radians) of x and y, also known as the angle in the Euclidean plane.
•
Example: atan2(1, 0)
➔
1.57 = π / 2
•
Example: atan2(1, 1)
➔
0.79 = π / 4
pow(source: NUMBER, exponent: NUMBER)
➔
NUMBER
Calculate the result of the first number raised to the power of the second number.
•
Example: pow(2,3)
➔
8
sqrt(source: NUMBER)
➔
NUMBER
Calculate the square root of a number. This doesn't work for negative numbers.
•
Example: sqrt(9)
➔
3
•
Example: sqrt(2)
➔
1.41
min(source1: NUMBER, source2: NUMBER)
➔
NUMBER
Extract the smallest of two numbers.
•
Example: min(0, 1)
➔
0
max(source1: NUMBER, source2: NUMBER)
➔
NUMBER
Extract the largest of two numbers.
•
Example: max(0, 1)
➔
1
abs(value: NUMBER)
➔
NUMBER
Return the absolute value of a number. In practice, this comes down to removing the negative sign in front of a number.
•
Example: abs(-1)
➔
1
•
Example: abs(5 - 25)
➔
20
sign(value: NUMBER)
➔
NUMBER
Check if a number is positive or negative. Return 1 if a number is positive. Return -1 if a number is negative. Return 0 if a number is 0.
•
Example: sign(5)
➔
1
•
Example: sign(-10)
➔
-1
•
Example: sign(0)
➔
0
round(source: NUMBER)
➔
NUMBER
Return the rounded value of a number.
•
Example: round(3.49)
➔
3
•
Example: round(1.5)
➔
2
•
Example: round(6.79)
➔
7
floor(source: NUMBER)
➔
NUMBER
Return the nearest whole number down.
•
Example: floor(1.5)
➔
1
•
Example: floor(2.99)
➔
2
ceil(source: NUMBER)
➔
NUMBER
Return the nearest whole number up.
•
Example: ceil(1.5)
➔
2
•
Example: ceil(4.3)
➔
5
random()
➔
NUMBER
a random decimal number between 0 and 1.
•
Example: random()
➔
a random decimal number between 0 and 1
random(min: NUMBER, max: NUMBER)
➔
NUMBER
Return a decimal number randomly between two given numbers.
•
Example: random(1, 5)
➔
a random decimal number between 1 and 5
randomInt(min: NUMBER, max: NUMBER)
➔
NUMBER
Return a whole number randomly between two given numbers.
•
Example: randomInt(1, 5)
➔
a random whole number between 1 and 5
radians(degrees: NUMBER)
➔
NUMBER
Convert degrees to radians.
•
Example: radians(180)
➔
3.14 = π
•
Example: radians(90)
➔
1.57 = π / 2
degrees(radians: NUMBER)
➔
NUMBER
Convert radians to degrees.
•
Example: degrees($pi)
➔
180
•
Example: degrees($pi / 2)
➔
90
sin(radians: NUMBER)
➔
NUMBER
Calculate the sine of a number in radians.
•
Example: sin($pi / 2)
➔
1
•
Example: sin($pi / 6)
➔
0.5
cos(radians: NUMBER)
➔
NUMBER
Calculate the cosine of a number in radians.
•
Example: cos(0)
➔
1
•
Example: cos($pi / 2)
➔
0
tan(radians: NUMBER)
➔
NUMBER
Calculate the tangent of a number in radians.
•
Example: tan($pi / 4)
➔
1
•
Example: tan(0)
➔
0
asin(x: NUMBER)
➔
NUMBER
Calculate the arcsine (in radians) of x.
•
Example: asin(1)
➔
1.57 = π / 2
•
Example: asin(0.5)
➔
0.52 = π / 6
acos(x: NUMBER)
➔
NUMBER
Calculate the arccosine (in radians) of x.
•
Example: acos(1)
➔
0
•
Example: acos(0)
➔
1.57 = π / 2
atan(x: NUMBER)
➔
NUMBER
Calculate the arctangent (in radians) of x.
•
Example: atan(1)
➔
0.79 = π / 4
•
Example: atan(0)
➔
0
atan2(y: NUMBER, x: NUMBER)
➔
NUMBER
Calculate the arctangent (in radians) of x and y, also known as the angle in the Euclidean plane.
•
Example: atan2(1, 0)
➔
1.57 = π / 2
•
Example: atan2(1, 1)
➔
0.79 = π / 4
Color
color(red: NUMBER, green: NUMBER, blue: NUMBER)
➔
COLOR
Return a color value (hex color code) based on an RGB value.
•
Example: color(255, 255, 255)
➔
#FFFFFF
•
Example: color(255, 102, 97)
➔
#FF6661
red(source: COLOR)
➔
NUMBER
Return the red RGB parameter of a hex color code.
•
Example: red(#FF0000)
➔
255
•
Example: red(#008000)
➔
0
•
Example: red(#0000FF)
➔
0
green(source: COLOR)
➔
NUMBER
Return the green RGB parameter of a hex color code.
•
Example: green(#FF0000)
➔
0
•
Example: green(#008000)
➔
128
•
Example: green(#0000FF)
➔
0
blue(source: COLOR)
➔
NUMBER
Return the blue RGB parameter of a hex color code.
•
Example: blue(#FF0000)
➔
0
•
Example: blue(#008000)
➔
0
•
Example: blue(#0000FF)
➔
255
color(red: NUMBER, green: NUMBER, blue: NUMBER)
➔
COLOR
Return a color value (hex color code) based on an RGB value.
•
Example: color(255, 255, 255)
➔
#FFFFFF
•
Example: color(255, 102, 97)
➔
#FF6661
red(source: COLOR)
➔
NUMBER
Return the red RGB parameter of a hex color code.
•
Example: red(#FF0000)
➔
255
•
Example: red(#008000)
➔
0
•
Example: red(#0000FF)
➔
0
green(source: COLOR)
➔
NUMBER
Return the green RGB parameter of a hex color code.
•
Example: green(#FF0000)
➔
0
•
Example: green(#008000)
➔
128
•
Example: green(#0000FF)
➔
0
blue(source: COLOR)
➔
NUMBER
Return the blue RGB parameter of a hex color code.
•
Example: blue(#FF0000)
➔
0
•
Example: blue(#008000)
➔
0
•
Example: blue(#0000FF)
➔
255
Type Conversion
number(source: TEXT)
➔
NUMBER
Convert a text to a number. This doesn't work if the text cannot be converted to a number.
•
Example: number("1234")
➔
1234
•
Example: number("94.27")
➔
94.27
text(source: NUMBER)
➔
TEXT
Convert a number to a text.
•
Example: text(1234)
➔
"1234"
•
Example: text(94.27)
➔
"94.27"
•
Example: text(1 + 3)
➔
"4"
format(source: NUMBER, format: TEXT)
➔
TEXT
Convert a number to a text with a certain format. # is a placeholder for whole numbers whereas 0 represents the fractional part.
•
Example: format(1234.567, "#")
➔
"1235"
•
Example: format(1234.567, "#,###")
➔
"1,235"
•
Example: format(1234.567, "#.###,00")
➔
"1.234,57"
•
Example: format(1234.567, "#,##.00")
➔
"12,34.57"
•
Example: format(1234.567, "#,###.00")
➔
"1,234.57"
color(source: TEXT)
➔
COLOR
Convert a text to a color value (hex color code). This doesn't work if the text doesn't have a hex color code structure.
•
Example: green("#FFFFFF")
➔
#FF0000
number(source: TEXT)
➔
NUMBER
Convert a text to a number. This doesn't work if the text cannot be converted to a number.
•
Example: number("1234")
➔
1234
•
Example: number("94.27")
➔
94.27
text(source: NUMBER)
➔
TEXT
Convert a number to a text.
•
Example: text(1234)
➔
"1234"
•
Example: text(94.27)
➔
"94.27"
•
Example: text(1 + 3)
➔
"4"
format(source: NUMBER, format: TEXT)
➔
TEXT
Convert a number to a text with a certain format. # is a placeholder for whole numbers whereas 0 represents the fractional part.
•
Example:
format(1234.567, "#")
➔
"1235"
•
Example:
format(1234.567, "#,###")
➔
"1,235"
•
Example:
format(1234.567, "#.###,00")
➔
"1.234,57"
•
Example:
format(1234.567, "#,##.00")
➔
"12,34.57"
•
Example:
format(1234.567, "#,###.00")
➔
"1,234.57"
color(source: TEXT)
➔
COLOR
Convert a text to a color value (hex color code). This doesn't work if the text doesn't have a hex color code structure.
•
Example: green("#FFFFFF")
➔
#FF0000
Layers
layer(source: TEXT)
➔
LAYER
Refer to a layer.
•
Use this as part of a formula or a different function.
layer(source: TEXT).property
➔
TEXT or NUMBER
Refer to a layer's property. Learn more about layer properties.
•
Example: layer("Rectangle 1").x
➔
x-coordinate of the layer called Rectangle 1
•
Example: layer("Oval 1").opacity
➔
Opacity of the layer called Oval 1
•
Example: layer("Input 1").text
➔
Text in the input layer called Input 1
parent(layerName: LAYER)
➔
LAYER
Refer to the parent layer, e.g., a container or component.
•
Use this as part of a formula or a different function.
parent(layerName: LAYER).property
➔
TEXT or NUMBER
Refer to the parent layer's property. Learn more about layer properties.
•
Example: layer("Rectangle 1").x
➔
x-coordinate of Rectangle 1 its parent layer
•
Example: layer("Oval 1").opacity
➔
Opacity of Oval 1 its parent layer
initial(layerName: LAYER, layerProperty: TEXT)
➔
TEXT or NUMBER
Return the initial value (before any interactions) of a specific layer property. Learn more about layer properties.
•
Example: initial("Rectangle 1").x
➔
Initial x-coordinate of Rectangle 1
•
Example: initial("Oval 1, opacity")
➔
Initial opacity of Oval 1
•
Example: initial("Input 1, text")
➔
Initial text in Input 1
layer(source: TEXT)
➔
LAYER
Refer to a layer.
•
Use this as part of a formula or a different function.
layer(source: TEXT).property
➔
TEXT or NUMBER
Refer to a layer's property. Learn more about layer properties.
•
Example: layer("Rectangle 1").x
➔
x-coordinate of the layer called Rectangle 1
•
Example: layer("Oval 1").opacity
➔
Opacity of the layer called Oval 1
•
Example: layer("Input 1").text
➔
Text in the input layer called Input 1
parent(layerName: LAYER)
➔
LAYER
Refer to the parent layer, e.g., a container or component.
•
Use this as part of a formula or a different function.
parent(layerName: LAYER).property
➔
TEXT or NUMBER
Refer to the parent layer's property. Learn more about layer properties.
•
Example: layer("Rectangle 1").x
➔
x-coordinate of Rectangle 1 its parent layer
•
Example: layer("Oval 1").opacity
➔
Opacity of Oval 1 its parent layer
initial(layerName: LAYER, layerProperty: TEXT)
➔
TEXT or NUMBER
Return the initial value (before any interactions) of a specific layer property. Learn more about layer properties.
•
Example:
initial("Rectangle 1").x
➔
Initial x-coordinate of Rectangle 1
•
Example:
initial("Oval 1, opacity")
➔
Initial opacity of Oval 1
•
Example:
initial("Input 1, text")
➔
Initial text in Input 1
Relative Coordinates
toLayerX(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a x coordinate relative to the screen into the corresponding x coordinate relative to a container or component. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the x coordinate relative to a container `Container 1` based on the position (100, 200) relative to the screen, use the following function:
•
toLayerX(`Container 1`, 100, 200)
➔
returns the x coordinate relative to `Container 1` based on the x coordinate `100` relative to the screen.
toLayerY(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a y coordinate relative to the screen into the corresponding y coordinate relative to a container or component. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the y coordinate relative to a container `Container 1` based on the position (100, 200) relative to the screen, use the following function:
•
toLayerY(`Container 1`, 100, 200)
➔
returns the x coordinate relative to `Container 1` based on the x coordinate `100` relative to the screen.
toScreenX(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a x coordinate relative to a container or component into the corresponding x coordinate relative to the screen. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the x coordinate relative to the screen based on the position (10, 20) relative to a container `Container 1` , use the following function:
•
toScreenX(`Container 1`, 10, 20)
➔
returns the x coordinate relative to the screen based on the x coordinate `10` relative to `Container 1`.
toScreenY(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a y coordinate relative to a container or component into the corresponding y coordinate relative to the screen. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the y coordinate relative to the screen based on the position (10, 20) relative to a container `Container 1`, use the following function:
•
toScreenY(`Container 1`, 10, 20)
➔
returns the y coordinate relative to the screen based on the y coordinate `20` relative to `Container 1`.
toLayerX(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a x coordinate relative to the screen into the corresponding x coordinate relative to a container or component. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the x coordinate relative to a container `Container 1` based on the position (100, 200) relative to the screen, use the following function:
•
Example:
initial("Rectangle 1").x
➔
returns the x coordinate relative to `Container 1` based on the x coordinate `100` relative to the screen.
toLayerY(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a y coordinate relative to the screen into the corresponding y coordinate relative to a container or component. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the y coordinate relative to a container `Container 1` based on the position (100, 200) relative to the screen, use the following function:
•
Example:
initial("Rectangle 1").x
➔
returns the x coordinate relative to `Container 1` based on the x coordinate `100` relative to the screen.
toScreenX(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a x coordinate relative to a container or component into the corresponding x coordinate relative to the screen. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the x coordinate relative to the screen based on the position (10, 20) relative to a container `Container 1` , use the following function:
•
Example:
initial("Rectangle 1").x
➔
returns the x coordinate relative to the screen based on the x coordinate `10` relative to `Container 1`.
toScreenY(containerName: LAYER, x: NUMBER, y: NUMBER)
➔
NUMBER
Convert a y coordinate relative to a container or component into the corresponding y coordinate relative to the screen. The coordinates of layers inside a container or component are by default relative to the container or component they are in.
•
For example, if you want to get the y coordinate relative to the screen based on the position (10, 20) relative to a container `Container 1`, use the following function:
•
Example:
initial("Rectangle 1").x
➔
returns the y coordinate relative to the screen based on the y coordinate `20` relative to `Container 1`.
Time & Date
참고: 시간 및 날짜 함수는 ISO8601 형식을 따릅니다.
timeNow()
➔
TEXT
Retrieves the current time information.
•
Example: timeNow()
➔
17:44:50.123
time(hour: NUMBER, min: NUMBER, sec: NUMBER)
➔
TEXT
Constructs a time object with the provided hour, minute, and second values, presenting the time in the standard "hour:minute:second" format.
•
Example: time(14, 50, 23)
➔
14:50:23
hour()
➔
NUMBER
Retrieves and returns the hour component of a given time in a 24-hour format. This function takes a time value as input and extracts the hour part, providing it as a numerical value.
•
Example: hour("17:44:30")
➔
17
minute()
➔
NUMBER
Extracts and returns the minute component of a given time in a 24-hour format.
•
Example: minute("17:44:30")
➔
44
second()
➔
NUMBER
Extracts and returns the minute component of a given time in a 24-hour format.
•
Example: second("17:44:30")
➔
30
diffTime()
➔
NUMBER
Calculates the difference between two points in time, returning the duration in hours, minutes, and/or seconds.
•
Example: diffTime("17:45:30", "18:45:30", "H")
➔
1
•
Example: diffTime("17:45:30", "18:45:30", "M")
➔
60
•
Example: diffTime("17:45:30", "18:45:30", "S")
➔
3600
formatTime()
➔
NUMBER
Transforms a time value into a human-readable string, following a specified format pattern.
•
Example: formatTime("11:44:30", "HHa")
➔
11am
•
Example: formatTime("11:44:30", "HHam mm")
➔
11am 44
•
Example: formatTime("11:44:30", "hh:mm a")
➔
11:40 am
dateNow()
➔
NUMBER
Retrieves and returns the current date at the moment of execution.
•
Example: dateNow()
➔
2023-09-22
date(year: NUMBER, month: NUMBER, day: NUMBER)
➔
TEXT
Constructs a date object using the provided year, month, and day values, returning it in "year-month-day" format.
•
Example: date(2014, 12, 8)
➔
2014-12-08
year()
➔
NUMBER
Extracts and returns the year component from a "year-month-day" date string.
•
Example: year("2014-12-08")
➔
2014
month()
➔
NUMBER
Extracts and returns the month component from a "year-month-day" formatted date.
•
Example: month("2014-12-08")
➔
12
day()
➔
NUMBER
Extracts and returns the day component from a "year-month-day" formatted date.
•
Example: day("2014-12-08")
➔
8
DiffDate()
➔
NUMBER
Calculates the difference between two dates and returns it as a numerical value based on a specified unit ("Y", "M", "D", "YD", "YM", "MD"). Note: If the "to" date is earlier than the "from" date, the result will be -1.
•
Example: diffDate("1973-02-24", "1969-05-16", "Y")
➔
-1
•
Example: diffDate("1973-02-24", "1969-05-16", "M")
➔
-1
•
Example: diffDate("1973-02-24", "1969-05-16", "D")
➔
-1
•
Example: diffDate("1969-05-16", "1973-02-24", "Y")
➔
3
•
Example: diffDate("1969-05-16", "1973-02-24", "M")
➔
45
•
Example: diffDate("1969-05-16", "1973-02-24", "D")
➔
1380
•
Example: diffDate("1969-05-16", "1973-02-24", "MD")
➔
8
•
Example: diffDate("2023-01-01", "2023-02-10", "MD")
➔
9
•
Example: diffDate("1969-05-16", "1973-02-24", "YM")
➔
9
•
Example: diffDate("1969-05-16", "1973-02-24", "YD")
➔
284
•
Example: diffDate("2023-01-01", "2023-02-10", "YD")
➔
40
formatDate()
➔
TEXT
Returns a formatted date string based on the provided date value and format string.
•
Example: formatDate("2023-06-01", "DD/MM/YYYY")
➔
01/06/2023
•
Example: formatDate("2023-06-01", "YYYY MMMM dddd")
➔
2023 June Thursday
•
Example: formatDate("2023-06-01", "MMM DD, YY")
➔
Jun 01, 23
epochtodate(timestamp: NUMBER)
➔
TEXT
Converts a Unix epoch timestamp (ms) into a UTC DateTime representation.
•
Example: epochtodate (0)
➔
1970-01-01T00:00:00Z
•
Example: epochtodate (-1)
➔
1969-12-31T23:59:59.999Z
•
Example: epochtodate (1)
➔
1970-01-01T00:00:00.001Z
•
Example: epochtodate (1655908429662)
➔
1970-01-01T00:00:00.001Z
epochtodate(timestamp: NUMBER, format: TEXT)
➔
TEXT
Converts a Unix timestamp into a human-readable date/time string based on the specified format.
•
Example: epochtodate (1695316200000)
➔
2023-09-21T17:10:00Z
•
Example: epochtodate (1695316200000, "hh:mm")
➔
17:10
timeNow()
➔
TEXT
Retrieves the current time information.
•
Example: timeNow()
➔
17:44:50.123
time(hour: NUMBER, min: NUMBER, sec: NUMBER)
➔
TEXT
Constructs a time object with the provided hour, minute, and second values, presenting the time in the standard "hour:minute:second" format.
•
Example: time(14, 50, 23)
➔
14:50:23
hour()
➔
NUMBER
Retrieves and returns the hour component of a given time in a 24-hour format. This function takes a time value as input and extracts the hour part, providing it as a numerical value.
•
Example: hour("17:44:30")
➔
17
minute()
➔
NUMBER
Extracts and returns the minute component of a given time in a 24-hour format.
•
Example: minute("17:44:30")
➔
44
second()
➔
NUMBER
Extracts and returns the minute component of a given time in a 24-hour format.
•
Example: second("17:44:30")
➔
30
diffTime()
➔
NUMBER
Calculates the difference between two points in time, returning the duration in hours, minutes, and/or seconds.
•
Example:
diffTime("17:45:30", "18:45:30", "H")
➔
1
•
Example:
diffTime("17:45:30", "18:45:30", "M")
➔
60
•
Example:
diffTime("17:45:30", "18:45:30", "S")
➔
3600
formatTime()
➔
NUMBER
Transforms a time value into a human-readable string, following a specified format pattern.
•
Example:
formatTime("11:44:30", "HHa")
➔
11am
•
Example:
formatTime("11:44:30", "HHam mm")
➔
11am 44
•
Example:
formatTime("11:44:30", "hh:mm a")
➔
11:40 am
dateNow()
➔
NUMBER
Retrieves and returns the current date at the moment of execution.
•
Example: dateNow()
➔
2023-09-22
date(year: NUMBER, month: NUMBER, day: NUMBER)
➔
TEXT
Constructs a date object using the provided year, month, and day values, returning it in "year-month-day" format.
•
Example: date(2014, 12, 8)
➔
2014-12-08
year()
➔
NUMBER
Extracts and returns the year component from a "year-month-day" date string.
•
Example: year("2014-12-08")
➔
2014
month()
➔
NUMBER
Extracts and returns the month component from a "year-month-day" formatted date.
•
Example: month("2014-12-08")
➔
12
day()
➔
NUMBER
Extracts and returns the day component from a "year-month-day" formatted date.
•
Example: day("2014-12-08")
➔
8
DiffDate()
➔
NUMBER
Calculates the difference between two dates and returns it as a numerical value based on a specified unit ("Y", "M", "D", "YD", "YM", "MD"). Note: If the "to" date is earlier than the "from" date, the result will be -1.
•
Example:
diffDate("1973-02-24", "1969-05-16", "Y")
➔
-1
•
Example:
diffDate("1973-02-24", "1969-05-16", "M")
➔
-1
•
Example:
diffDate("1973-02-24", "1969-05-16", "D")
➔
-1
•
Example:
diffDate("1969-05-16", "1973-02-24", "Y")
➔
3
•
Example:
diffDate("1969-05-16", "1973-02-24", "M")
➔
45
•
Example:
diffDate("1969-05-16", "1973-02-24", "D")
➔
1380
•
Example:
diffDate("1969-05-16", "1973-02-24", "MD")
➔
8
•
Example:
diffDate("2023-01-01", "2023-02-10", "MD")
➔
9
•
Example:
diffDate("1969-05-16", "1973-02-24", "YM")
➔
9
•
Example:
diffDate("1969-05-16", "1973-02-24", "YD")
➔
284
•
Example:
diffDate("2023-01-01", "2023-02-10", "YD")
➔
40
formatDate()
➔
TEXT
Returns a formatted date string based on the provided date value and format string.
•
Example:
formatDate("2023-06-01", "DD/MM/YYYY")
➔
01/06/2023
•
Example:
formatDate("2023-06-01", "YYYY MMMM dddd")
➔
2023 June Thursday
•
Example:
formatDate("2023-06-01", "MMM DD, YY")
➔
Jun 01, 23
epochtodate(timestamp: NUMBER)
➔
TEXT
Converts a Unix epoch timestamp (ms) into a UTC DateTime representation.
•
Example:
epochtodate (0)
➔
1970-01-01T00:00:00Z
•
Example:
epochtodate (-1)
➔
1969-12-31T23:59:59.999Z
•
Example:
epochtodate (1)
➔
1970-01-01T00:00:00.001Z
•
Example:
epochtodate (1655908429662)
➔
1970-01-01T00:00:00.001Z
epochtodate(timestamp: NUMBER, format: TEXT)
➔
TEXT
Converts a Unix timestamp into a human-readable date/time string based on the specified format.
•
Example:
epochtodate (1695316200000)
➔
2023-09-21T17:10:00Z
•
Example:
epochtodate (1695316200000, "hh:mm")
➔
17:10
ProtoPie School 마스터클래스에서 더 알아보기
ProtoPie에서 함수를 사용하는 방법에 대해 더 알고 싶으신가요? ProtoPie 마스터클래스에 참여하여 본 문서에 나열된 일부 함수를 사용하는 구체적인 예시와 가이드를 확인해보세요.